Java的HashMap 可以方便的转换成json,如果将json传给php,php可以方便的转换成array,json就这样充当了数据传输的角色,当的不错。
package com.javaer.test;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.ParseException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicHeader;
import org.apache.http.util.EntityUtils;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.util.HashMap;
public class JSONTtest {
public static void main(String[] args) throws JSONException {
JSONObject jsondata=new JSONObject();
jsondata.put("id","23");
jsondata.put("name","Tom");
postJson("http://localhost/DEMO/JsonRead/read.php?act=post",jsondata);
}
public static String postJson(String url, JSONObject json){
CloseableHttpClient httpclient = HttpClientBuilder.create().build();
HttpPost post = new HttpPost(url);
JSONObject response = null;
String result=null;
try {
StringEntity s = new StringEntity(json.toString());
s.setContentEncoding("UTF-8");
s.setContentType("application/json");//发送json数据需要设置contentType
post.setEntity(s);
HttpResponse res = httpclient.execute(post);
if(res.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
result = EntityUtils.toString(res.getEntity());// 返回json格式:
// response = JSONObject.stringToValue(result);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
System.out.println(result);
return result;
}
}
接受的php端
控制台返回了php收到了java传过来json 进行转换成数组
Hipoststring(24) "{"name":"Tom","id":"23"}"
array(2) {
["name"]=>
string(3) "Tom"
["id"]=>
string(2) "23"
}