java发起http请求获取返回的Json对象方法
作者:jeanFlower 时间:2022-06-20 04:00:00
话不多说,先看代码!
/**
* Created by david on 2017-7-5.
*/
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpRequestUtil {
/**
* 发起http请求并获取结果
* @param requestUrl 请求地址
*/
public static JsonObject getXpath(String requestUrl){
String res="";
JsonObject object = null;
StringBuffer buffer = new StringBuffer();
try{
URL url = new URL(requestUrl);
HttpURLConnection urlCon= (HttpURLConnection)url.openConnection();
if(200==urlCon.getResponseCode()){
InputStream is = urlCon.getInputStream();
InputStreamReader isr = new InputStreamReader(is,"utf-8");
BufferedReader br = new BufferedReader(isr);
String str = null;
while((str = br.readLine())!=null){
buffer.append(str);
}
br.close();
isr.close();
is.close();
res = buffer.toString();
JsonParser parse =new JsonParser();
object = (JsonObject) parse.parse(res);
}
}catch(IOException e){
e.printStackTrace();
}
return object;
}
public static JsonObject postDownloadJson(String path,String post){
URL url = null;
try {
url = new URL(path);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");// 提交模式
// conn.setConnectTimeout(10000);//连接超时 单位毫秒
// conn.setReadTimeout(2000);//读取超时 单位毫秒
// 发送POST请求必须设置如下两行
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
// 获取URLConnection对象对应的输出流
PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
// 发送请求参数
printWriter.write(post);//post的参数 xx=xx&yy=yy
// flush输出流的缓冲
printWriter.flush();
//开始获取数据
BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int len;
byte[] arr = new byte[1024];
while((len=bis.read(arr))!= -1){
bos.write(arr,0,len);
bos.flush();
}
bos.close();
JsonParser parse = new JsonParser();
return (JsonObject)parse.parse(bos.toString("utf-8"));
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//测试
public static void main(String args [] ) {
JsonObject res = null;
// res = getXpath("http://ip.taobao.com/service/getIpInfo.php?ip=63.223.108.42");
res = postDownloadJson("http://ip.taobao.com/service/getIpInfo.php?ip=63.223.108.42","123");
System.out.println(res);
System.out.println(res.get("code"));
System.out.println(res.get("data"));
}
}
看第一个方法,发送get请求获取后台数据,其中,将返回回来的字符串解析成json对象用到了google的Gson.jar包,用到了其中JsonParser的parse方法。
第二个方法,发送post数据到后台并获取后台数据。
来源:https://blog.csdn.net/jeanFlower/article/details/74494136
标签:java,http,请求,Json
0
投稿
猜你喜欢
详解java整合solr5.0之solrj的使用
2023-07-23 03:12:06
C# cmd中修改显示(显示进度变化效果)的方法
2023-11-02 13:55:34
Android编程基于重力传感器实现横竖屏放向切换功能
2022-11-30 00:38:54
Java获取当前时间年月日的方法
2023-02-19 01:26:54
解决Tomcat启动报异常java.lang.ClassNotFoundException问题
2023-07-27 03:33:01
java采用中文方式显示时间的方法
2021-07-24 03:04:34
C#双向链表LinkedList排序实现方法
2021-08-19 14:06:16
Android实现计时与倒计时的常用方法小结
2023-10-28 07:18:02
SpringBoot搭建多数据源的实现方法
2022-07-02 18:57:04
Android GPS获取当前经纬度坐标
2021-10-31 12:09:40
Spring Cloud Gateway整合sentinel 实现流控熔断的问题
2022-01-18 23:10:05
Winform下实现图片切换特效的方法
2023-04-20 21:26:28
如何用java程序(JSch)运行远程linux主机上的shell脚本
2023-11-24 12:35:58
基于SSM实现学生管理系统
2023-11-24 18:17:39
java数字转汉字工具类详解
2023-04-28 02:00:26
详解Java8中的lambda表达式、::符号和Optional类
2022-02-03 03:04:56
android实现下拉菜单三级联动
2022-10-13 15:46:53
Jenkins自动构建部署项目到远程服务器上的方法步骤
2023-11-25 00:21:40
Flutter 底部弹窗如何实现多项选择
2023-06-24 17:08:17
SpringBoot自定义starter启动器的实现思路
2023-10-09 00:55:15