这个技术和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) {
服务端代码test.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协议详解,这篇文章讲的很好
这个技术和xml差不过,主要是服务端代码稍微修改,客户端代码修改部分传递参数就可以完成,但在之前需要导入json所需要的jar包。 PostJson.java代码package PostPager;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import ja
Android6.0中把Apache HTTP Client所有的包与类都标记为deprecated不再建议使用所有跟HTTP相关的数据请求与提交操作都通过HttpURLConnection类实现,现实是很多Android开发者一直都Apache HTTP Client来做andoird客户端与后台HTTP接口数据交互,小编刚刚用HttpURLConnection做了一个android的APP,不小心踩到了几个坑,总结下最常用的就通过HttpURLConnection来POST提交JSON数据与GET请求JSON数据。此外就是下载图片,下载图片分为显示进度与不显示进度两种。其中提交数据的时候涉
java-HttpURLConnection 发送POST请求 传递参数或JSON数据
需求 三方接口 restful请求 POST方式 参数JSON 接收数据JSON
HttpURLConnection发送POST请求
public class RestUtil {
public String postMethod(String url,String param){
// 结果值
StringBuffer rest=new StringBuffe
private void sendData(String url, String jsonDataStr) {
HttpURLConnection conn = null;
OutputStreamWriter out = null;
String url = "http://www.baidu.com";
//请求参数
RequesetBody requesetBody = new RequesetBody();
//将接口传入文本放入实体中
requesetBody.setQueryText(context);
try {
//调用getData请求url取响应参数
String response = getData(url, requesetBody);
Java发送http请求,参数形式为json
不介绍知识,哪不懂自己搜。只记录平时用到的,可以给其他人做参考。
需要传递的参数为json形式,比如手机号{“phone”:“123456”}
public static int sendPost(String mobile,int user_id){
URL postURL = null;
HttpURLConnection httpUrl = null;
String url = "这里换成你需要访问的地址";
Strin