Java 安卓Rest客户端

Java 安卓Rest客户端,java,android,apache-httpclient-4.x,Java,Android,Apache Httpclient 4.x,我发现了这么多请求RESTAPI的示例,但所有这些示例都令人困惑,请告诉我如何使用http请求 我的要求是,我希望通过提供用户名、pwd和密钥从RESTAPI获取数据 我用的是, HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("REST API url"); post.setHeader("Content-type", "applicatio

我发现了这么多请求RESTAPI的示例,但所有这些示例都令人困惑,请告诉我如何使用http请求

我的要求是,我希望通过提供用户名、pwd和密钥从RESTAPI获取数据

我用的是,

        HttpClient client = new DefaultHttpClient();  
        HttpPost post = new HttpPost("REST API url"); 
        post.setHeader("Content-type", "application/json");

        JSONObject obj = new JSONObject();
        obj.put("username", "un");
        obj.put("pwd", "password");
        obj.put("key","123456");

        post.setEntity(new StringEntity(obj.toString(), "UTF-8"));
        HttpResponse response = client.execute(post);

但响应总是空的,当使用浏览器工具通过发布相同的数据进行测试时,这些响应工作正常。我的方法有什么问题吗?请告诉我正确的方法。谢谢你我想你应该试试这个

HttpContext localContext = new BasicHttpContext();
HttpClient client = new DefaultHttpClient();  
HttpPost post = new HttpPost("REST API url"); 
post.setHeader("Content-type", "application/json");

JSONObject obj = new JSONObject();
obj.put("username", "un");
obj.put("pwd", "password");
obj.put("key","123456");

post.setEntity(new StringEntity(obj.toString(), "UTF-8"));
HttpResponse response = client.execute(post,localContext);

希望这会有所帮助。

您可能忘记将internet权限添加到清单文件。 添加以下行

 <uses-permission android:name="android.permission.INTERNET" />

(1)

(2) 在android开发者博客中搜索

(三)

请在发完你的问题后再试, 我可以共享基于(1)和(2)开发的rest客户端的代码片段

不要使用云到设备的消息传递,而是在andrid应用程序开发中使用最新的云方法


有一个名为Volley的新库,它看起来比AsyncTask更好。它在开发RESTful客户端时应该很有用。

服务器是否希望此操作有GET请求?如果是这样的话,您可能希望使用HttpGet而不是HttpPost。

不,我尝试过这个,仍然是相同的问题。我无法获得响应数据。谁能帮我一下吗。我应该使用UrlConnection而不是Http类吗?