Android HTTP PUT请求
有人能给我一个Android HTTP PUT请求,android,Android,有人能给我一个HTTP-PUT请求Android示例代码吗?假设您想使用HttpURLConnection,要执行HTTP-PUT,您可以使用以下方法: URL url = new URL("http://www.example.com/resource"); HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); httpCon.setDoOutput(true); httpCon.setRequestMeth
HTTP-PUT
请求Android示例代码吗?假设您想使用HttpURLConnection,要执行HTTP-PUT,您可以使用以下方法:
URL url = new URL("http://www.example.com/resource");
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
httpCon.setDoOutput(true);
httpCon.setRequestMethod("PUT");
OutputStreamWriter out = new OutputStreamWriter(
httpCon.getOutputStream());
out.write("Data you want to put");
out.close();
要使用HTTPPut类,请尝试:
URL url = new URL("http://www.example.com/resource");
HttpClient client = new DefaultHttpClient();
HttpPut put= new HttpPut(url);
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(new BasicNameValuePair("key1", "value1"));
pairs.add(new BasicNameValuePair("key2", "value2"));
put.setEntity(new UrlEncodedFormEntity(pairs));
HttpResponse response = client.execute(put);
URL=新URL(“http://www.example.com/resource");
HttpClient=new DefaultHttpClient();
HttpPut=新的HttpPut(url);
列表对=新的ArrayList();
添加(新的BasicNameValuePair(“键1”、“值1”);
添加(新的BasicNameValuePair(“键2”,“值2”));
set实体(新的UrlEncodedFormEntity(对));
HttpResponse response=client.execute(put);
虽然我还没有测试过它,但我很确定这应该是可行的:)最好使用像or这样的库,这样可以减少网络的复杂性,更容易处理请求响应。以下是使用AsyncHTTP的方法:
AsyncHttpClient client = new AsyncHttpClient();
RequestParams params = new RequestParams();
params.put("some_key", "value-1");
params.put("another_key", "value-2");
client.put(url, params, new AsyncHttpResponseHandler {
public void onSuccess(int statusCode, Header[] headers, String response) {
// Do something with response
}
});
我认为这是正确的,这就是你写帖子的方式,我从来没有尝试过PUT。setEntity是用来传递数据的吗?在第一个例子中写(…)?如果是,我如何将简单字符串传递给它?@BeRecursive:我尝试了这两种方法,即使它对我不起作用,它给出了服务器错误代码500。我使用的是HttpPu类。错误代码500是服务器端错误,也就是说服务器上出了问题,而不是此代码。使用HttpPut的第二种方法对我不起作用。URL不是HttpPut的可接受参数。```new AsyncHttpResponseHandler(){@Override public void onSuccess(int statusCode,Header[]headers,byte[]responseByte){Log.d(“标记”,“数据更新后成功”);}@Override public void onFailure(int statusCode,Header[]头文件,字节[]responseBody,Throwable error){Log.d(“标记”,“数据更新后失败”+statusCode+”和“+error);//throw error;}```