Ver Fonte

try okhttpclient

fengchang há 1 ano atrás
pai
commit
a6c39d8301

+ 3 - 0
hichina-main-back/build.gradle

@@ -62,6 +62,9 @@ dependencies {
 	implementation 'com.alibaba.fastjson2:fastjson2:2.0.29'
     // https://mvnrepository.com/artifact/org.jsoup/jsoup
 	implementation 'org.jsoup:jsoup:1.16.1'
+	// https://mvnrepository.com/artifact/com.squareup.okhttp/okhttp
+	implementation 'com.squareup.okhttp:okhttp:2.7.5'
+
 }
 
 tasks.named('test') {

+ 3 - 8
hichina-main-back/src/main/java/com/hichina/main/back/hichinamainback/controller/DemoController.java

@@ -39,16 +39,11 @@ public class DemoController {
         int proxyPort = 1083;
 
         // Define the target URL
-        String targetUrl = "https://graph.facebook.com/v14.0/me?access_token=EAAOIMZBkz7HoBAGkAuxiCExK50z7KBaIePyqmoHtzy49WWkO5y1GvkcvSNZBv7nEZAjNFv9DwZBecOEImptxcGmThXkShS8zL7j3tK0YkcHaTgTQeZBvXuRVTL35Juq5ZCD96pMOTIZBdADUtoPgMN14WgiipQnWk3saICPQKNmeUe9Xgj3VwB4YDwTarD6LWS81oX4n6ztbYqvLwmfSuqA";
+        String targetUrl = "https://graph.facebook.com/v14.0/me?access_token=EAAOIMZBkz7HoBAE2w4bLC6XxH2SM3tUNfHRRQSgxykJ2upVuCuZAJPEuZCAenKnACS8uDHGfbmnVNCEIuxqevR0f3LYI1p8x2MO3tYh5eypNdIXuGOjPdkuLfVP1JH8ZCTBDuoj7vadhZAjPNtEl8IjCz1dzZAakfsPpiZCFsfYy4yYQZAWmOfbIWjcPkhbXVmvQfoVwL5f9KUDbUdwKxaHN";
 
+        JsonObject response = HttpUtils.sendToWithProxyV2(targetUrl, proxyHost, proxyPort);
 
-        String response = HttpUtils.sendToWithProxy(targetUrl, proxyHost, proxyPort);
-
-        JsonParser jsonParser = new JsonParser();
-        JsonObject jsonResponse = jsonParser.parse(response).getAsJsonObject();
-
-        System.out.println(jsonResponse.has("id"));
-        return response;
+        return response.toString();
     }
 
 }

+ 10 - 10
hichina-main-back/src/main/java/com/hichina/main/back/hichinamainback/utils/FacebookAccessTokenValidator.java

@@ -31,15 +31,15 @@ public class FacebookAccessTokenValidator {
         String targetUrl = GRAPH_API_URL+accessToken;
         // Create a Proxy object with the proxy server details
 
-        try {
-            String response = HttpUtils.sendToWithProxy(targetUrl, proxyHost, proxyPort);
-            LOG.info("===response from httputil: "+response);
-            JsonParser jsonParser = new JsonParser();
-            JsonObject jsonResponse = jsonParser.parse(response).getAsJsonObject();
-            return jsonResponse.has("id");
-        } catch (IOException e) {
-            LOG.error("===didn't validate succeed"+e.getMessage());
-            return false;
-        }
+//        try {
+            JsonObject response = HttpUtils.sendToWithProxyV2(targetUrl, proxyHost, proxyPort);
+//            LOG.info("===response from httputil: "+response);
+//            JsonParser jsonParser = new JsonParser();
+//            JsonObject jsonResponse = jsonParser.parse(response).getAsJsonObject();
+            return response!=null?response.has("id"):false;
+//        } catch (IOException e) {
+//            LOG.error("===didn't validate succeed"+e.getMessage());
+//            return false;
+//        }
     }
 }

+ 30 - 0
hichina-main-back/src/main/java/com/hichina/main/back/hichinamainback/utils/HttpUtils.java

@@ -1,5 +1,11 @@
 package com.hichina.main.back.hichinamainback.utils;
 
+import com.google.gson.Gson;
+import com.google.gson.JsonObject;
+import okhttp3.Call;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpHost;
 import org.apache.http.client.ClientProtocolException;
@@ -26,6 +32,30 @@ import java.net.*;
 public class HttpUtils {
     private static final Logger LOG = LoggerFactory.getLogger(HttpUtils.class);
 
+    public static JsonObject sendToWithProxyV2(String url, String proxyHost, Integer proxyPort){
+        InetSocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
+        Proxy proxy = new Proxy(Proxy.Type.SOCKS, proxyAddr);
+
+        Request request = new Request.Builder()
+                .url(url)
+                .build();
+        OkHttpClient client = new OkHttpClient.Builder()
+                .proxy(proxy)
+                .build();
+
+        Call call = client.newCall(request);
+        try {
+            Response response = call.execute();
+            LOG.info("===ok client response code: "+response.code());
+            Gson gson = new Gson();
+            JsonObject entity = gson.fromJson(response.body().string(), JsonObject.class);
+            return entity;
+        } catch (IOException e) {
+            LOG.error("===okclient exception: "+ e.getMessage());
+            return null;
+        }
+    }
+
     public static String sendToWithProxy(String url, String proxyHost, Integer proxyPort) throws IOException {
         System.setProperty("https.protocols", "TLSv1.2");
         Registry<ConnectionSocketFactory> reg = RegistryBuilder.<ConnectionSocketFactory>create()