java http post json
来源:互联网 发布:淘宝有哪些奇葩商品 编辑:程序博客网 时间:2024/05/17 00:52
转载自:http://zheyiw.iteye.com/blog/1571222
- 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。
0 0
- java http post json
- java http post json
- java http 请求之post json数据
- java http 请求之post json数据
- java http post模板(json传参)
- http post json
- Java http get/post 传递json参数问题
- Java http get/post 传递json参数问题 .
- java发送JSON格式的http通讯的post请求
- java 通过http post方式传参参数json 方式
- java发送http的get、post请求 登录返JSON
- JAVA HTTP POST请求(请求参数格式为json)
- Java发送HTTP的get,post请求(JSON)
- WP7 - RestSharp + JSON Http Post
- libevent http post json 测试
- java post json 请求
- java post json 数据包
- java post json
- 使用Visio画用例图没有include(包含)关系的解决办法
- ssh机器间添加信任关系
- Android开发 在AndoridStudio中引入GreenDAO
- GreenDao常用操作(一)
- hdu2604 Queuing
- java http post json
- 在Html中元素的相对位置的获取
- 路径积分
- android L新控件RecyclerView详解与DeMo
- AOE网上的关键路径【OJ--2498】【SPFA】
- Caused by: java.lang.IllegalStateException: getOutputStream() has already been called for this respo
- Github的项目文件上传
- 【NOIP2011TG】【OJ4366】【codevs1135】选择客栈
- POJ 1528 Perfection