1. import java.io.IOException;
  2. import java.io.InputStream;
  3. import java.io.OutputStreamWriter;
  4. import java.net.HttpURLConnection;
  5. import java.net.URL;
  6. public class Copy_2_of_PostDemo {
  7. final static String url = "";
  8. final static String params = "{\"id\":\"12345\"}";
  9. /**
  10. * 发送HttpPost请求
  11. *
  12. * @param strURL
  13. *            服务地址
  14. * @param params
  15. *            json字符串,例如: "{ \"id\":\"12345\" }" ;其中属性名必须带双引号<br/>
  16. * @return 成功:返回json字符串<br/>
  17. */
  18. public static String post(String strURL, String params) {
  19. System.out.println(strURL);
  20. System.out.println(params);
  21. try {
  22. URL url = new URL(strURL);// 创建连接
  23. HttpURLConnection connection = (HttpURLConnection) url
  24. .openConnection();
  25. connection.setDoOutput(true);
  26. connection.setDoInput(true);
  27. connection.setUseCaches(false);
  28. connection.setInstanceFollowRedirects(true);
  29. connection.setRequestMethod("POST"); // 设置请求方式
  30. connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式
  31. connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式
  32. connection.connect();
  33. OutputStreamWriter out = new OutputStreamWriter(
  34. connection.getOutputStream(), "UTF-8"); // utf-8编码
  35. out.append(params);
  36. out.flush();
  37. out.close();
  38. // 读取响应
  39. int length = (int) connection.getContentLength();// 获取长度
  40. InputStream is = connection.getInputStream();
  41. if (length != -1) {
  42. byte[] data = new byte[length];
  43. byte[] temp = new byte[512];
  44. int readLen = 0;
  45. int destPos = 0;
  46. while ((readLen = is.read(temp)) > 0) {
  47. System.arraycopy(temp, 0, data, destPos, readLen);
  48. destPos += readLen;
  49. }
  50. String result = new String(data, "UTF-8"); // utf-8编码
  51. System.out.println(result);
  52. return result;
  53. }
  54. } catch (IOException e) {
  55. // TODO Auto-generated catch block
  56. e.printStackTrace();
  57. }
  58. return "error"; // 自定义错误信息
  59. }
  60. public static void main(String[] args) {
  61. post(url, params);
  62. }
  63. }

备注

httpUrlConnection.setDoOutput(true);以后就可以使用conn.getOutputStream().write() 
httpUrlConnection.setDoInput(true);以后就可以使用conn.getInputStream().read();

get请求用不到conn.getOutputStream(),因为参数直接追加在地址后面,因此默认是false。 
post请求(比如:文件上传)需要往服务区传输大量的数据,这些数据是放在http的body里面的,因此需要在建立连接以后,往服务端写数据。

因为总是使用conn.getInputStream()获取服务端的响应,因此默认值是true。

java http url post json的更多相关文章

  1. java根据url获取json对象

    package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; ...

  2. java请求url返回json

    package cn.it.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputS ...

  3. java读取url中json文件中的json数据

    有时候需要远程从其他接口中获取json数据,如果遇到返回的json数据是一个文件而不直接是数据,那么可以通过以下方法进行读取: /** * 从数据接口获取到数据 * @return * @throws ...

  4. java通过url调用远程接口返回json数据

    java通过url调用远程接口返回json数据,有用户名和密码验证, 转自 https://blog.csdn.net/wanglong1990421/article/details/78815856 ...

  5. 【转】java通用URL接口地址调用方式GET和POST方式

    java通用URL接口地址调用方式GET和POST方式,包括建立请求和设置请求头部信息等等......... import java.io.ByteArrayOutputStream; import ...

  6. java调用http请求json

    最近遇到的问题,java如何调用http请求json: public class HttpClientUtil { private static final String CONTENT_TYPE_T ...

  7. Java实现微信菜单json字符串拼接

    Java实现微信菜单json字符串拼接 微信菜单拼接json字符串方法 >>>>>>>>>>>>>>>> ...

  8. Java的URL类(二)

    转:https://www.cnblogs.com/brokencolor/p/8575440.html Java的URL类(二) 实例: Java 通过HttpURLConnection Post方 ...

  9. Java通过URL 从web服务端获取数据

    1.Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据 package Demo.Test; import java.io.ByteArrayOut ...

随机推荐

  1. C++中的静态多态和动态多态

    C++中的静态多态和动态多态 今天的C++已经是个多重泛型编程语言(multiparadigm programming lauguage),一个同时支持过程形式(procedural).面向对象形式( ...

  2. linux extract rar files

    Extract rar-archives If you need to extract rar files in Linux, you have to download and install unr ...

  3. malloc内存分配与free内存释放的原理

    malloc内存分配与free内存释放的原理 前段时间一直想看malloc的原理,在搜了好几篇malloc源码后遂放弃,晦涩难懂. 后来室友买了本深入理解计算机系统的书,原来上面有讲malloc的原理 ...

  4. golang 之 bson 与 struct 转换

    bson的介绍不说了golang下的解析包找到2个 一个是mongo的http://labix.org/gobson,另外一个比较小众https://github.com/sbunce/bson这里用 ...

  5. Matlab内置函数

    [原创]Matlab.NET混编技巧之——找出Matlab内置函数   Matlab与.NET的混合编程,掌握了基本过程,加上一定的开发经验和算法基础,肯定不难.反之,有时候一个小错误,可能抓破脑袋, ...

  6. Lucene.net入门学习系列(2)

    Lucene.net入门学习系列(2) Lucene.net入门学习系列(1)-分词 Lucene.net入门学习系列(2)-创建索引 Lucene.net入门学习系列(3)-全文检索 在使用Luce ...

  7. 查找算法---find运算,find_first_of的使用

    查找算法---find运算,find_first_of的使用 一.find运算 假设有一个int型的vector对象,名为vec,我们想知道其中是否包含某个特定值. 解决这个问题最简单的方法时使用标准 ...

  8. Winform程序

    故事的开端是这样的,小白是一个程序员,他确实也是一个小白,目前还在程序员发展的道路上,兢兢业业的小心求学. 有一天,小白接到一个任务,完成一个Winform程序,附加一个功能就是可以读IC卡. 小白终 ...

  9. 关于SqlDataAdapter的使用

    原文传送门 如果使用SqlDataAdapter来查询数据返回给DataSet或者DataTable时需要注意以下几点:1.如果SqlDataAdapter的SelectCommand的连接并没有打开 ...

  10. LNMP安装与配置

    Nginx与apache.lighttp性能综合对比,如下图:                           注意:关闭rpm默认安装的apache和mysql 1.准备php函数的rpm包 y ...