2016-06-16 3 views
7

Мне нужно настроить прокси для отправки JSON с помощью POST, используя proxyHost и proxyPort.Настройки прокси-сервера 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, что я видел на некоторых ответов здесь он указывает ошибку:

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

Иам с помощью OKHTTP 3.3.1 (okhttp3)

Мои вопрос в том, что мне делать? Я сделал несколько таких тестов:

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

Но пока ничего не работает.

Спасибо за ваше время!

+0

Вы называли [OkHttpClient.proxy()] (http://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html#proxy--) Но вы хотите позвонить [ OkHttpClient.Builder.proxy (прокси)] (http://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.Builder.html#proxy-java.net.Proxy-). – nobar

ответ

8

Найдено решение:

//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

наилучшими пожеланиями!

Смежные вопросы