如何从Android调用基于PHP的网络服务



我有一个简单的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的流),否则改造将是最佳选择。

相关内容

  • 没有找到相关文章

最新更新