2016-09-17 4 views
0

Я использую HttpUrlConnection для выполнения запросов к mysql db с помощью webservices. С HttpUrlConnection я могу выполнять все мои запросы в фоновом режиме, поэтому основной поток не перегружается и начинает пропускать кадры.Android - запросы OkHTTP

С okHttp, как это достигается? Как сделать запрос с ним и распечатать ответ с помощью JSON? Это лучше, чем httpUrlConnection?

P.S Я ничего не знаю о okHttp, я буду признателен, если вы будете откровенны с вашими примерами.

ответ

2

С okHttp, как это достигается?

Как правило, вы позволите ему обрабатывать фоновый поток для вас, используя enqueue() для асинхронных операций:

private final OkHttpClient client = new OkHttpClient(); 

    public void run() throws Exception { 
    Request request = new Request.Builder() 
     .url("http://publicobject.com/helloworld.txt") 
     .build(); 

    client.newCall(request).enqueue(new Callback() { 
     @Override public void onFailure(Call call, IOException e) { 
     // handle the error 
     } 

     @Override public void onResponse(Call call, Response response) throws IOException { 
      // use the result 
     } 
    }); 
    } 

(красивая упрощенных из the OkHttp docs)

Или, если у вас уже есть фоновый поток , вы можете использовать execute() вместо enqueue() для синхронной работы.

Вы, возможно, пожелает рассмотреть другие примеры на the OkHttp recipes page, плюс the OkHttp Web page, плюс the OkHttp wiki, чтобы получить лучшее представление о том, как он сравнивает с тем, что вы привыкли.

+0

Рассмотрите возможность использования модификации с помощью okhttp, чтобы все это упростилось. – nasch

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