您的位置:首页 > 理论基础 > 计算机网络

Android/java 利用HttpUrlConnection 发送put请求,携带json参数

2015-06-12 11:42 821 查看
<span style="font-size:18px;">  之前关于Http请求基本上只接触过GET和POST,最近由于项目需要使用Http的put请求,由于之前对PUT请求完全不了解,度娘里面也基本上没啥可直接参考的,于是去stackoverflow找到了<span style="color:#ff0000;">http://stackoverflow.com/questions/15678208/making-put-request-with-json-data-using-httpurlconnection-is-not-working</span> 这篇文章,参考了这篇文章,终于解决了PUT请求的一些问题,下面做一下简单的记录,方便自己学习和交流,因为是新手第一次做这个,错误之处,欢迎指出,一起学习交流。</span>


关于PUT请求的代码实现,其实跟POST请求比较相似,下面是代码:

<span style="font-size:14px;">public String httpUrlConnectionPut(String httpUrl, String... params) {
String result = "";
URL url = null;
try {
url = new URL(httpUrl);
} catch (MalformedURLException e) {
e.printStackTrace();
}
if (url != null) {
try {
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
urlConn.setRequestProperty("content-type", "application/json");
urlConn.setDoInput(true);
urlConn.setDoOutput(true);
urlConn.setConnectTimeout(5 * 1000);
//设置请求方式为 PUT
urlConn.setRequestMethod("PUT");

urlConn.setRequestProperty("Content-Type", "application/json");
urlConn.setRequestProperty("Accept", "application/json");

urlConn.setRequestProperty("Charset", "UTF-8");

DataOutputStream dos = new DataOutputStream(urlConn.getOutputStream());
//写入请求参数
//这里要注意的是,在构造JSON字符串的时候,实践证明,最好不要使用单引号,而是用“\”进行转义,否则会报错
// 关于这一点在上面给出的参考文章里面有说明
String jsonParam = "{\"appid\":6,\"appkey\":\"0cf0vGD/ClIrVmvVT/r5hEutH5M=\",\"openid\":200}";
dos.writeBytes(jsonParam);
dos.flush();
dos.close();

if (urlConn.getResponseCode() == 200) {
InputStreamReader isr = new InputStreamReader(urlConn.getInputStream());
BufferedReader br = new BufferedReader(isr);
String inputLine = null;
while ((inputLine = br.readLine()) != null) {
result += inputLine;
}
isr.close();
urlConn.disconnect();
}

} catch (Exception e) {
e.printStackTrace();
}
}

return result;

}</span>
<span style="font-size:14px;">本人也是新手,欢迎交流学习</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: