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# in deep 之LINQ读取xml(2)

    假如有以下xml文件 <?xml version="1.0" encoding="utf-8" ?><Date>  <Produc ...

  2. 一、SOAP简单对象访问协议讲解

    一.SOAP简单对象访问协议讲解 今天给大家讲讲SOAP的基本知识.下节给大家演示创建基于SOAP的Web Service. 更多SOA文章请查看我的个人博客. 首先,让我来简单一下入门SOAP所需的 ...

  3. [转]UIWebView的Javascript运行时对象

    An alternative, that may get you rejected from the app store, is to use WebScriptObject. These APIs ...

  4. VS调试技巧与快捷键&&VS快捷键

    VS调试技巧与调试快捷键 1.添加断点或取消断点:F9(或者点击代码行最左边的灰色行)   2.调试:F10逐过程(不进入函数内部,直接获取函数运行结果)  F11逐语句(会进入函数),如果想跳出函数 ...

  5. macvim打造python IDE

    昨天安装了macvim,今天在上面配置了一下python的ide: 大家也可参考http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/ 1.文法 ...

  6. 简单的mvc之三:灵活的路由(上)

    在上一篇关于管线的随笔中已经提及了管线,通过对管线的分析,我们可以得到下面几个结论:路由系统由URLRoutingModule模块实现,它订阅了PostResolvRequestCache事件:路由系 ...

  7. Redis协议详解

    smark Beetle可靠.高性能的.Net Socket Tcp通讯组件 支持flash amf3,protobuf,Silverlight,windows phone Redis协议详解 由于前 ...

  8. SystemTray文字颜色问题

    今天想给SystemTray的ForegroundColor设置为白色,但是模拟器正确,真机仍为黑色.经过一番折腾,发现是微软做了限制,背景是什么颜色,ForegroundColor就不能为什么颜色. ...

  9. DateTimePicker.Text不靠谱

    DateTimePicker.Text不靠谱 获取时:在DateTimePicker.ValueChanged事件中,获取到的Text有可能是string.Empty!!!,特别当ValueChang ...

  10. 解密:LL与LR解析 1(译)

    解密:LL与LR解析 1 作者:Josh Haberman 翻译:杨贵福 由于GFW,我无法联系到作者,所以没有授权,瞎翻译的.原文在这里[http://blog.reverberate.org/20 ...