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. 【Oracle】-【COMMIT对索引的影响】-从trace看COMMIT对索引的影响

    之前看过老杨http://yangtingkun.itpub.net/post/468/231000的一篇文章,讲述了INSERT操作对全文索引无操作,但DELETE时为了防止删除的数据仍能通过索引的 ...

  2. web代理进行跨域访问

    通过web代理进行跨域访问,http请求返回超时的问题定位   [现象] 在ajax通过web代理跨域访问时,http第一次登陆时正常,但是第二次再下发其他命令的时候总是返回 java.net.Soc ...

  3. 领域模型中分散的事务如何集中统一处理(C#解决方案)

    领域模型中分散的事务如何集中统一处理(C#解决方案)   开篇 什么是事务,事务的应用场景 做项目时,经常会遇到一些需求,比如注册用户时,要求同时存入用户的基本信息和初始化该用户的帐户,如果在这两个环 ...

  4. Class Model of Quick Time Plugin

    Quick Time Plugin 的类图. pdf version: http://pan.baidu.com/s/1o6oFV8Q

  5. ubuntu下使用golang、qml与ubuntu sdk开发桌面应用

    ubuntu下使用golang.qml与ubuntu sdk开发桌面应用 (简单示例) 找了很长时间go的gui库,试了gtk,准备试qt的时候发现了这个qml库,试了下很好用. 准备工作 1.Go ...

  6. Jquery轻量级幻灯插件-OWL Carousel--支持触屏的移动浏览器

    Jquery轻量级幻灯插件-OWL Carousel--支持触屏的移动浏览器 在项目中,需要做一个幻灯功能,领导说需要一个小清醒的啊,轻量级的.刚开始搜索到这个: CRAFTYSLIDE插件.但是用起 ...

  7. ACM 位运算

    的幂 boolean power2(int x) { return((x&(x-1))==0)&&(x!=0): } For example: #include<stdi ...

  8. ASP.NET MVC:利用ASP.NET MVC4的IBundleTransform集成LESS

    ASP.NET MVC:利用ASP.NET MVC4的IBundleTransform集成LESS 背景 LESS确实不错,只是每次写完LESS都要手工编译一下有点麻烦(VS插件一直没有安装好),昨天 ...

  9. Ubuntu 下的环境变量配置

    网上很多配置jdk环境变量的方法,但是几乎都会下次重启电脑就失效,或者时不时的失效.下面教你一招 JDK环境变量配置如下: 执行命令sudo gedit /etc/environment,在打开的编辑 ...

  10. mysql基础:数据库的创建,增删改查

    =============查看数据库========================== 使用SHOW语句找出服务器上当前存在什么数据库: mysql> SHOW DATABASES; +--- ...