使用HttpURLConnection的Android POST请求

pvshnik

我正在尝试使用HttpURLConnection执行发布请求,但不知道如何正确执行。

我可以使用以下代码通过AndroidAsyncHttp客户端成功执行请求

AsyncHttpClient httpClient = new AsyncHttpClient();
httpClient.addHeader("Content-type", "application/json");
httpClient.setUserAgent("GYUserAgentAndroid");
String jsonParamsString = "{\"key\":\"value\"}";
RequestParams requestParams = new RequestParams("request", jsonParamsString);
httpClient.post("<server url>", requestParams, jsonHttpResponseHandler);

可以在台式机上使用curl来执行相同的请求:

curl -A "GYUserAgentAndroid" -d 'request={"key":"value"}' '<server url>'

这两种方法都给了我服务器的预期响应。

现在,我想使用HttpURLConnection进行相同的请求。问题是我不知道该怎么做。我已经尝试过这样的事情:

URL url = new URL("<server url>");
HttpURLConnection httpUrlConnection = (HttpURLConnection) url.openConnection();
httpUrlConnection.setDoOutput(true);
httpUrlConnection.setDoInput(true);
httpUrlConnection.setRequestMethod("POST");
httpUrlConnection.setRequestProperty("User-Agent", "GYUserAgentAndroid");
httpUrlConnection.setRequestProperty("Content-Type", "application/json");
httpUrlConnection.setUseCaches (false);

DataOutputStream outputStream = new DataOutputStream(httpUrlConnection.getOutputStream());

// what should I write here to output stream to post params to server ?

outputStream.flush();
outputStream.close();

// get response
InputStream responseStream = new BufferedInputStream(httpUrlConnection.getInputStream());
BufferedReader responseStreamReader = new BufferedReader(new InputStreamReader(responseStream));
String line = "";
StringBuilder stringBuilder = new StringBuilder();
while ((line = responseStreamReader.readLine()) != null) {
    stringBuilder.append(line);
}
responseStreamReader.close();

String response = stringBuilder.toString();
JSONObject jsonResponse = new JSONObject(response);
// the response is not I'm expecting

return jsonResponse;

如何使用AsyncHttpClient正确编写与工作示例中相同的数据,并卷曲到HttpURLConnection输出流?

提前致谢。

苏尼尔·米什拉(Sunil Mishra)

您可以使用以下内容发布参数

outputStream.writeBytes(jsonParamsString);
outputStream.flush();
outputStream.close();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android:HttpUrlConnection使用POST发送请求正文(而不是GET)

来自分类Dev

Android:HttpUrlConnection使用POST发送请求正文(而不是GET)

来自分类Dev

使用HttpURLConnection提交JSON POST请求

来自分类Dev

带有图片/ jpeg的Android HttpURLConnection POST请求

来自分类Dev

中断HttpURLConnection请求Android

来自分类Dev

使用HttpURLConnection执行POST请求时获取JSON响应

来自分类Dev

如何使用HTTPURLConnection和JSON数据发送POST请求

来自分类Dev

使用HttpURLConnection执行POST请求时获取JSON响应

来自分类Dev

在POST请求中使用POST

来自分类Dev

Android Webview POST请求

来自分类Dev

HttpURLConnection POST返回400错误请求

来自分类Dev

Python:POST中使用请求的错误请求

来自分类Dev

Android HttpUrlConnection设置POST方法

来自分类Dev

Android上的HTTPPost与HttpUrlConnection POST

来自分类Dev

Android Retrofit POST请求缓存

来自分类Dev

排球POST请求Android令牌

来自分类Dev

Android HTTP Post授权请求

来自分类Dev

android - http post请求设计

来自分类Dev

Android Http 请求 POST JSON

来自分类Dev

使用PHPUnit发送POST请求

来自分类常见问题

使用NSURLSession发送POST请求

来自分类Dev

使用libmicrohttpd处理POST请求

来自分类Dev

使用scrapy发出POST请求

来自分类Dev

使用alamofire发出POST请求

来自分类Dev

使用POST请求重定向

来自分类Dev

如何使用ReactJS使POST请求

来自分类Dev

使用Bash发出POST请求

来自分类Dev

使用Cookie发送POST请求

来自分类Dev

使用libmicrohttpd处理POST请求