我有一个简单的php网络服务,返回结果为json。
if($_SERVER["REQUEST_METHOD"]=="POST"){
$arg1=$_POST["arg1"];
processArgs($arg1);
}
processArgs($arg1){
$result=doSomething($arg1);
echo json_encode($result);
}
我可以使用HttpURLConnection
从Android侧调用它。但是问题是HttpURLConnection
似乎是非常低的工作。是否有任何级别的实现,我们可以避免编写相同的代码以使其异步和解析结果。
只需使用HttpClient
如下。
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://your-host/comm.php");
try {
//add your post data
List<NameValuePair> args = new ArrayList<NameValuePair>(2);
args.add(new BasicNameValuePair("arg1", "your-arg-1"));
httpPost.setEntity(new UrlEncodedFormEntity(args));
//send your request
HttpResponse response = httpClient.execute(httpPost);
} catch (ClientProtocolException | IOException e) {
e.printStackTrace();
}
HttpURLConnection
(java.net.httpurlConnection)是Android中的默认HTTP客户端。
OkHttp
是另一个成为Android 4.4时为Httpurlconnection提供动力的发动机。它提供了自定义每个请求的更简单的方法。
httpurlconnection和okhttp都在某种程度上工作。因此,我们需要编写自己的代码以使其异步并一次又一次地解析结果。
另一方面,改造是一个高级实现,它使用OKHTTP进行连接,而GSON进行解析结果。它可以轻松地将HTTP API变成Java接口。
因此,除非您有特定原因与OKHTTP一起使用(例如基于HTTP的流),否则改造将是最佳选择。