Android/java 利用HttpUrlConnection 发送put请求,携带json参数
16lz
2021-01-26
之前关于Http请求基本上只接触过GET和POST,最近由于项目需要使用Http的put请求,由于之前对PUT请求完全不了解,度娘里面也基本上没啥可直接参考的,于是去stackoverflow找到了http://stackoverflow.com/questions/15678208/making-put-request-with-json-data-using-httpurlconnection-is-not-working 这篇文章,参考了这篇文章,终于解决了PUT请求的一些问题,下面做一下简单的记录,方便自己学习和交流,因为是新手第一次做这个,错误之处,欢迎指出,一起学习交流。
关于PUT请求的代码实现,其实跟POST请求比较相似,下面是代码:
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);//设置请求方式为 PUTurlConn.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;}
本人也是新手,欢迎交流学习
更多相关文章
- Android(安卓)开发学习小结(五)
- android企业开发学习——handler
- Android(安卓)— 手撸代码学习事件分发的过程
- android学习日记:拨号按键声音自定义
- Android(安卓)Design Support Library使用示例(一)
- Android学习笔记10——Android的调试
- Android学习系列Toolbar,AppBarLayout,CoordinatorLayout,Collapsin
- 网易云短信android接入
- 学习android JNI的那些事儿--------4. Field & Method --> Acces