实例如下所示:
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONArray;
import org.json.JSONObject;
public class GetJsonData {
public static String getJsonData(JSONObject jsonParam,String urls) {
StringBuffer sb=new StringBuffer();
try {
;
// 创建url资源 URL url = new URL(urls);
// 建立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 = (jsonParam.toString()).getBytes();
// 设置文件长度 conn.setRequestProperty("Content-Length", String.valueOf(data.length));
// 设置文件类型: conn.setRequestProperty("contentType", "application/json");
// 开始连接请求 conn.connect();
OutputStream out = new DataOutputStream(conn.getOutputStream()) ;
// 写入请求的字符串 out.write((jsonParam.toString()).getBytes());
out.flush();
out.close();
System.out.println(conn.getResponseCode());
// 请求返回的状态 if (HttpURLConnection.HTTP_OK == conn.getResponseCode(){
System.out.println("连接成功");
// 请求返回的数据 InputStream in1 = conn.getInputStream();
try {
String readLine=new String();
BufferedReader responseReader=new BufferedReader(new InputStreamReader(in1,"UTF-8"));
while((readLine=responseReader.readLine())!=null){
sb.append(readLine).append("n");
}
responseReader.close();
System.out.println(sb.toString());
}
catch (Exception e1) {
e1.printStackTrace();
}
}
else {
System.out.println("error++");
}
}
catch (Exception e) {
}
return sb.toString();
}
public static void main(String[] args) {
JSONObject jsonParam = new JSONObject();
jsonParam.put("id", "1401_1406");
jsonParam.put("device_size", "480x720");
String url="www.baidu.com";
String data=GetJsonData.getJsonData(jsonParam,url);
//返回的是一个[{
}
]格式的字符串时: JSONArray jsonArray = new JSONArray(data);
//返回的是一个{
}
格式的字符串时: /*JSONObject obj= new JSONObject(data);
*/ }
}
以上这篇java 通过发送json,post请求,返回json数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- java模拟post请求发送json的例子
- Java Web程序实现返回JSON字符串的方法总结
- java以json格式向后台服务器接口发送请求的实例
- httpclient模拟post请求json封装表单数据的实现方法
- Java中使用json与前台Ajax数据交互的方法
- java使用httpclient发送post请求示例