Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据
2016-04-08 12:35
981 查看
这个技术和xml差不过,主要是服务端代码稍微修改,客户端代码修改部分传递参数就可以完成,但在之前需要导入json所需要的jar包。
PostJson.java代码
服务端代码test.php
这里面的json_encode是对字符串进行json编码,json_decode是对字符串进行json解码
返回结果:
{“app_name”:[“全民大讨论”],”app_ip”:[“10.21.243.234”],”app_type”:[“001”],”app_port”:[8080],”app_area”:[“asd”]}
200
连接成功
{“app_name”:[“全民大讨论”],”app_ip”:[“10.21.243.234”],”app_type”:[“001”],”app_port”:[8080],”app_area”:[“asd”]}{“app_name”:[“全民大讨论”],”app_ip”:[“10.21.243.234”],”app_type”:[“001”],”app_port”:[8080],”app_area”:[“asd”]}
http协议详解,这篇文章讲的很好
PostJson.java代码
package PostPager; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; public class PostJson { public static void main(String args[]) { try { JSONObject obj = new JSONObject(); obj.append("app_name", "全民大讨论"); obj.append("app_ip", "10.21.243.234"); obj.append("app_port", 8080); obj.append("app_type", "001"); obj.append("app_area", "asd"); System.out.println(obj); // 创建url资源 URL url = new URL("http://119.29.85.118//test.php"); // 建立http连接 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 设置允许输出 conn.setDoOutput(true); conn.setDoInput(true); // 设置不用缓存 conn.setUseCaches(false); // 设置传递方式 conn.setRequestMethod("POST"); // 设置维持长连接 conn.setRequestProperty("Connection", "Keep-Alive"); // 设置文件字符集: conn.setRequestProperty("Charset", "UTF-8"); //转换为字节数组 byte[] data = (obj.toString()).getBytes(); // 设置文件长度 conn.setRequestProperty("Content-Length", String.valueOf(data.length)); // 设置文件类型: conn.setRequestProperty("contentType", "application/json"); // 开始连接请求 conn.connect(); OutputStream out = conn.getOutputStream(); // 写入请求的字符串 out.write((obj.toString()).getBytes()); out.flush(); out.close(); System.out.println(conn.getResponseCode()); // 请求返回的状态 if (conn.getResponseCode() == 200) { System.out.println("连接成功"); // 请求返回的数据 InputStream in = conn.getInputStream(); String a = null; try { byte[] data1 = new byte[in.available()]; in.read(data1); // 转成字符串 a = new String(data1); System.out.println(a); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else { System.out.println("no++"); } } catch (Exception e) { } } }
服务端代码test.php
<?php $result = file_get_contents('php://input'); echo $result; echo json_decode(json_encode($result)); ?>
这里面的json_encode是对字符串进行json编码,json_decode是对字符串进行json解码
返回结果:
{“app_name”:[“全民大讨论”],”app_ip”:[“10.21.243.234”],”app_type”:[“001”],”app_port”:[8080],”app_area”:[“asd”]}
200
连接成功
{“app_name”:[“全民大讨论”],”app_ip”:[“10.21.243.234”],”app_type”:[“001”],”app_port”:[8080],”app_area”:[“asd”]}{“app_name”:[“全民大讨论”],”app_ip”:[“10.21.243.234”],”app_type”:[“001”],”app_port”:[8080],”app_area”:[“asd”]}
http协议详解,这篇文章讲的很好
相关文章推荐
- C#网络编程之编码解码
- Delphi 用idhttp 获取网页源码
- 深度学习与传统神经网络算法
- Android OkHttp完全解析 是时候来了解OkHttp了
- 导入WEB工程报HttpServlet相关报找不到解决方法
- 实测Kubernetes和Mesos在高并发下的网络性能
- Fiddler(二) - 使用Fiddler做抓包分析
- Java 通过HttpURLConnection Post方式提交xml,并从服务端返回数据
- hisi平台mii网络模式和rmii网络模式的uboot制作
- Android编程实现TCP客户端的方法
- 使用telnet玩一下http
- 网络刷博器爬虫(while应用)
- jsp编译完成后显示的HTTP Status 404 - /MyWebBBS/servlet/RegisterServlet%20%7D其中的%20%7D什么意思
- HTTP学习笔记--HTTP报文
- Linux traceroute --追踪网络数据包
- jQuery ajax 请求HttpServlet返回[HTTP/1.1 405 Method not allowed]
- Flash存储的故事(http://alanwu.blog.51cto.com/3652632/1426457)
- 利用听云Server和听云Network实测Kubernetes和Mesos在高并发下的网络性能
- OC网络下载
- POCO库下访问HTTPS获取返回的JSON数据