2016-09-17 72 views
0

我正在使用HttpUrlConnection向使用webservices的我的mysql数据库发出请求。使用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简体)

或者,如果你已经有了一个后台线程,您可以使用​​而不是enqueue()进行同步操作。

您可能希望查看the OkHttp recipes page的其他示例,再加上the OkHttp Web page,再加上the OkHttp wiki,以更好地了解它与您习惯的相比。

+0

考虑使用okhttp进行改造,使整个事情变得更加容易。 – nasch