这个技术和xml差不过,主要是服务端代码稍微修改,客户端代码修改部分传递参数就可以完成,但在之前需要导入json所需要的jar包。
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) {
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
服务端代码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协议详解,这篇文章讲的很好