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. 移动tempdb导致数据库服务不能启动

    事情的起因是因为数据库的IO操作过大,于是新加了个硬盘,发现在执行写入操作的时候,服务器的压力依然是比较大的,于是想到了内存盘.内存盘是"魔方"系统优化提供的一个小工具,就是将内存 ...

  2. 10.26最后的模拟DAY2 数字对[暴力]

    数字对 [题目描述] 小H是个善于思考的学生,现在她又在思考一个有关序列的问题. 她的面前浮现出一个长度为n的序列{ai},她想找出一段区间[L, R](1 <= L <= R <= ...

  3. 对 Linux 新手有用的 20 个命令

    你打算从Windows换到Linux上来,还是你刚好换到Linux上来?哎哟!!!我说什么呢,是什么原因你就出现在我的世界里了.从我以往的经验来说,当我刚使用Linux,命令,终端啊什么的,吓了我一跳 ...

  4. jQuery全屏插件Textarea Fullscreen

    插件描述 Textarea Fullscreen是一个jquery插件,可以将textarea设置为全屏模式 使用方法 引用jquery.js,jquery.textareafullscreen.js ...

  5. mov sreg, r/m16 在16位和32位编程中的区别

    总结于<X86汇编语言 从实模式到保护模式> 仅适用于X86系列处理器 1. 两者的区别: 例:mov ds, ax A.在指定16位编译模式下,产生的二进制码是 8E D8 B.在指定3 ...

  6. 总结C++中取成员函数地址的几种方法

    这里, 我整理了4种C++中取成员函数地址的方法, 第1,2,4种整理于网上的方法, 第3种cdecl_cast是我自己想到的. 其中, 第4种(汇编)的方法不能在VC6上编译通过. 推荐使用第1,2 ...

  7. 大数据应用日志采集之Scribe演示实例完全解析

    大数据应用日志采集之Scribe演示实例完全解析 引子: Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储系 ...

  8. 分享一套 CodeSmit 代码生成模板。

    分享一套 CodeSmit 代码生成模板. 住博客园 5 年了,以前也发过一些博文,但都在 一天后 / 几周后 / 几年后 将它删了:因为感觉代码写得不好:不清晰或侵入太大,哪怕只有一句侵入. 可是最 ...

  9. [COM/ATL]浅析COM的思想及原理

    COM--Component Object Model,即组件对象模型,它是微软提出的一套开发软件的方法与规范.它也代表了一种软件开发思想,那就是面向组件编程的思想. COM编程思想--面向组件编程思 ...

  10. etcd使用之ttl不准确问题

    问题现象 部署有一个etcd集群,分别是10.8.65.106,10.8.65.107和10.8.65.108. 然后我使用etcdctl为一个值设置ttl,然后通过watch观察,发现失效时间不准确 ...