java http url post json
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStreamWriter;
- import java.net.HttpURLConnection;
- import java.net.URL;
- public class Copy_2_of_PostDemo {
- final static String url = "";
- final static String params = "{\"id\":\"12345\"}";
- /**
- * 发送HttpPost请求
- *
- * @param strURL
- * 服务地址
- * @param params
- * json字符串,例如: "{ \"id\":\"12345\" }" ;其中属性名必须带双引号<br/>
- * @return 成功:返回json字符串<br/>
- */
- public static String post(String strURL, String params) {
- System.out.println(strURL);
- System.out.println(params);
- try {
- URL url = new URL(strURL);// 创建连接
- HttpURLConnection connection = (HttpURLConnection) url
- .openConnection();
- connection.setDoOutput(true);
- connection.setDoInput(true);
- connection.setUseCaches(false);
- connection.setInstanceFollowRedirects(true);
- connection.setRequestMethod("POST"); // 设置请求方式
- connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式
- connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式
- connection.connect();
- OutputStreamWriter out = new OutputStreamWriter(
- connection.getOutputStream(), "UTF-8"); // utf-8编码
- out.append(params);
- out.flush();
- out.close();
- // 读取响应
- int length = (int) connection.getContentLength();// 获取长度
- InputStream is = connection.getInputStream();
- if (length != -1) {
- byte[] data = new byte[length];
- byte[] temp = new byte[512];
- int readLen = 0;
- int destPos = 0;
- while ((readLen = is.read(temp)) > 0) {
- System.arraycopy(temp, 0, data, destPos, readLen);
- destPos += readLen;
- }
- String result = new String(data, "UTF-8"); // utf-8编码
- System.out.println(result);
- return result;
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return "error"; // 自定义错误信息
- }
- public static void main(String[] args) {
- post(url, params);
- }
- }
备注
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的更多相关文章
- java根据url获取json对象
package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; ...
- java请求url返回json
package cn.it.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputS ...
- java读取url中json文件中的json数据
有时候需要远程从其他接口中获取json数据,如果遇到返回的json数据是一个文件而不直接是数据,那么可以通过以下方法进行读取: /** * 从数据接口获取到数据 * @return * @throws ...
- java通过url调用远程接口返回json数据
java通过url调用远程接口返回json数据,有用户名和密码验证, 转自 https://blog.csdn.net/wanglong1990421/article/details/78815856 ...
- 【转】java通用URL接口地址调用方式GET和POST方式
java通用URL接口地址调用方式GET和POST方式,包括建立请求和设置请求头部信息等等......... import java.io.ByteArrayOutputStream; import ...
- java调用http请求json
最近遇到的问题,java如何调用http请求json: public class HttpClientUtil { private static final String CONTENT_TYPE_T ...
- Java实现微信菜单json字符串拼接
Java实现微信菜单json字符串拼接 微信菜单拼接json字符串方法 >>>>>>>>>>>>>>>> ...
- Java的URL类(二)
转:https://www.cnblogs.com/brokencolor/p/8575440.html Java的URL类(二) 实例: Java 通过HttpURLConnection Post方 ...
- Java通过URL 从web服务端获取数据
1.Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据 package Demo.Test; import java.io.ByteArrayOut ...
随机推荐
- 移动tempdb导致数据库服务不能启动
事情的起因是因为数据库的IO操作过大,于是新加了个硬盘,发现在执行写入操作的时候,服务器的压力依然是比较大的,于是想到了内存盘.内存盘是"魔方"系统优化提供的一个小工具,就是将内存 ...
- 10.26最后的模拟DAY2 数字对[暴力]
数字对 [题目描述] 小H是个善于思考的学生,现在她又在思考一个有关序列的问题. 她的面前浮现出一个长度为n的序列{ai},她想找出一段区间[L, R](1 <= L <= R <= ...
- 对 Linux 新手有用的 20 个命令
你打算从Windows换到Linux上来,还是你刚好换到Linux上来?哎哟!!!我说什么呢,是什么原因你就出现在我的世界里了.从我以往的经验来说,当我刚使用Linux,命令,终端啊什么的,吓了我一跳 ...
- jQuery全屏插件Textarea Fullscreen
插件描述 Textarea Fullscreen是一个jquery插件,可以将textarea设置为全屏模式 使用方法 引用jquery.js,jquery.textareafullscreen.js ...
- mov sreg, r/m16 在16位和32位编程中的区别
总结于<X86汇编语言 从实模式到保护模式> 仅适用于X86系列处理器 1. 两者的区别: 例:mov ds, ax A.在指定16位编译模式下,产生的二进制码是 8E D8 B.在指定3 ...
- 总结C++中取成员函数地址的几种方法
这里, 我整理了4种C++中取成员函数地址的方法, 第1,2,4种整理于网上的方法, 第3种cdecl_cast是我自己想到的. 其中, 第4种(汇编)的方法不能在VC6上编译通过. 推荐使用第1,2 ...
- 大数据应用日志采集之Scribe演示实例完全解析
大数据应用日志采集之Scribe演示实例完全解析 引子: Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储系 ...
- 分享一套 CodeSmit 代码生成模板。
分享一套 CodeSmit 代码生成模板. 住博客园 5 年了,以前也发过一些博文,但都在 一天后 / 几周后 / 几年后 将它删了:因为感觉代码写得不好:不清晰或侵入太大,哪怕只有一句侵入. 可是最 ...
- [COM/ATL]浅析COM的思想及原理
COM--Component Object Model,即组件对象模型,它是微软提出的一套开发软件的方法与规范.它也代表了一种软件开发思想,那就是面向组件编程的思想. COM编程思想--面向组件编程思 ...
- etcd使用之ttl不准确问题
问题现象 部署有一个etcd集群,分别是10.8.65.106,10.8.65.107和10.8.65.108. 然后我使用etcdctl为一个值设置ttl,然后通过watch观察,发现失效时间不准确 ...