Commit a865ee83 authored by Max Lv's avatar Max Lv

Replace HttpRequest with OkHttp3

parent 5419b4b5
......@@ -20,6 +20,9 @@ proguardVersion := "5.3.2"
proguardCache := Seq()
proguardOptions ++=
"-keep class com.github.shadowsocks.System { *; }" ::
"-keep class okhttp3.** { *; }" ::
"-keep interface okhttp3.** { *; }" ::
"-dontwarn okio.**" ::
"-dontwarn com.google.android.gms.internal.**" ::
"-dontwarn com.j256.ormlite.**" ::
"-dontwarn org.xbill.**" ::
......@@ -37,7 +40,7 @@ libraryDependencies ++=
"com.android.support" % "preference-v14" % "25.1.0" ::
"com.evernote" % "android-job" % "1.1.3" ::
"com.github.jorgecastilloprz" % "fabprogresscircle" % "1.01" ::
"com.github.kevinsawicki" % "http-request" % "6.0" ::
"com.squareup.okhttp3" % "okhttp" % "3.5.0" ::
"com.google.android.gms" % "play-services-ads" % "10.0.1" ::
"com.google.android.gms" % "play-services-analytics" % "10.0.1" ::
"com.google.android.gms" % "play-services-gcm" % "10.0.1" ::
......
......@@ -21,7 +21,9 @@
package com.github.shadowsocks
import java.io.IOException
import java.util.{Timer, TimerTask}
import java.util.concurrent.TimeUnit;
import java.util.{Arrays, List, Timer, TimerTask}
import java.net.InetAddress
import android.app.Service
import android.content.{BroadcastReceiver, Context, Intent, IntentFilter}
......@@ -30,12 +32,26 @@ import android.os.{Handler, RemoteCallbackList}
import android.text.TextUtils
import android.util.Log
import android.widget.Toast
import com.github.kevinsawicki.http.HttpRequest
import com.github.shadowsocks.ShadowsocksApplication.app
import com.github.shadowsocks.aidl.{IShadowsocksService, IShadowsocksServiceCallback}
import com.github.shadowsocks.database.Profile
import com.github.shadowsocks.utils._
import okhttp3.Dns
import okhttp3.FormBody
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
class CustomDns extends Dns {
override def lookup(hostname: String): List[InetAddress] = {
Utils.resolve(hostname, false) match {
case Some(ip) => Arrays.asList(InetAddress.getByName(ip))
case _ => Dns.SYSTEM.lookup(hostname)
}
}
}
trait BaseService extends Service {
@volatile private var state = State.STOPPED
......@@ -132,12 +148,24 @@ trait BaseService extends Service {
val container = holder.getContainer
val url = container.getString("proxy_url")
val sig = Utils.getSignature(this)
val list = HttpRequest
.post(url)
.connectTimeout(2000)
.readTimeout(2000)
.send("sig="+sig)
.body
val client = new OkHttpClient.Builder()
.dns(new CustomDns())
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.build()
val requestBody = new FormBody.Builder()
.add("sig", sig)
.build()
val request = new Request.Builder()
.url(url)
.post(requestBody)
.build()
val resposne = client.newCall(request).execute()
val list = resposne.body.string
val proxies = util.Random.shuffle(list.split('|').toSeq)
val proxy = proxies.head.split(':')
profile.host = proxy(0).trim
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment