Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android HTTP PUT请求_Android - Fatal编程技术网

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;}```