2016-06-16 28 views
7

proxyHostとproxyPortを使用して、POSTを使用してJSONを送信するようにプロキシを設定する必要があります。OkHttpプロキシ設定

public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); 
    Proxy proxyTest = new Proxy(Proxy.Type.HTTP,new InetSocketAddress("proxy", proxyPort)); 

    OkHttpClient client = new OkHttpClient() 
    .proxy(proxyTest) 
    .build(); 
    //OkHttpClient.Builder builder = new OkHttpClient.Builder(); 
    //builder.proxy(proxySAP); 
    //client.setProxy(proxySAP) 
    //OkHttpClient client = builder.build();; 

    String post(String url, String json) throws IOException { 

    RequestBody body = RequestBody.create(JSON, json); 
    Request request = new Request.Builder() 
     .url(url) 
     .post(body) 
     .build(); 
    try (Response response = client.newCall(request).execute()) { 
     return response.body().string(); 
    } 
    } 

私はproxyTestを使用しようと、私はいくつかの回答で見た、ここで、それは誤りを指摘したこと:OKHTTP 3.3.1を使用して

The method proxy() in the type OkHttpClient is not applicable for the arguments (Proxy)

はIAM(okhttp3)

マイ質問は、私は何をすべきですか?私はこのようないくつかのテストを行った:

OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.proxy(proxyTest);
client.setProxy(proxyTest)
OkHttpClient client = builder.build();

しかし、何もこれまでのところ動作します。

ありがとうございました!

//OkHttpClient client = new OkHttpClient(); 

    OkHttpClient.Builder builder = new OkHttpClient.Builder().proxy(proxyTest); 
    OkHttpClient client = builder.build(); 

    //builder.proxy(proxyTest); 
    //client.setProxy(proxyTest) 
    //OkHttpClient client = builder.build();; 

私たちは入力にプロキシをビルダーを使用している場合は、それが魅力= D

敬具のように動作します:

+0

[あなたは [OkHttpClient.proxyを()](http://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html#proxy--)呼んでいた。しかし、あなたは、呼び出したいですOkHttpClient.Builder.proxy(Proxy)](http://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.Builder.html#proxy-java.net.Proxy-)。 – nobar

答えて

8

は解決策を見つけました!

関連する問題