欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java 通过发送json,post请求,返回json数据的方法

程序员文章站 2022-10-10 16:48:58
实例如下所示: import java.io.bufferedreader; import java.io.dataoutputstream; import...

实例如下所示:

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数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。