以下是Java发起HTTP请求获取返回的JSON对象的详细攻略:
第一步:引入依赖
在进行HTTP请求之前,需要先引入相关的依赖。这里,我们需要引入以下两个库:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
第一个依赖是Apache HttpComponents库,提供了HTTP客户端和HTTP连接管理器的功能。第二个依赖是json-simple库,用于处理JSON数据。
第二步:发起HTTP请求
发起HTTP请求的核心代码如下:
/**
* 发起HTTP请求
* @param url 请求URL
* @param headers 请求头信息
* @param params 请求参数
* @return 返回JSON对象
* @throws Exception
*/
public static JSONObject httpGet(String url, Map<String, String> headers, Map<String, String> params) throws Exception {
// 创建Http请求连接
HttpClient httpClient = HttpClients.createDefault();
URIBuilder uriBuilder = new URIBuilder(url);
if (params != null) {
for (Map.Entry<String, String> entry : params.entrySet()) {
uriBuilder.setParameter(entry.getKey(), entry.getValue());
}
}
// 创建Http Get请求
HttpGet httpGet = new HttpGet(uriBuilder.build());
if (headers != null) {
for (Map.Entry<String, String> entry : headers.entrySet()) {
httpGet.setHeader(entry.getKey(), entry.getValue());
}
}
// 执行请求
HttpResponse httpResponse = httpClient.execute(httpGet);
// 解析响应
String responseBody = EntityUtils.toString(httpResponse.getEntity());
JSONObject responseJson = (JSONObject) JSONValue.parse(responseBody);
return responseJson;
}
以上代码中的httpGet方法接受3个参数:请求的URL、请求的头信息以及请求的参数。其返回值为一个JSON对象。
httpGet方法中首先使用URIBuilder为URL添加参数。然后,创建HttpGet请求,并使用setHeader方法为请求设置头信息。最后,执行请求,并将返回的响应转化为JSON对象。
第三步:示例
下面,我们以京东万象API的查询IP地址接口为例,演示如何使用以上代码发起HTTP请求,获取返回的JSON数据。
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", "APPCODE {你的APPCODE}");
JSONObject json = HttpUtils.httpGet("https://api.jd.com/routerjson", headers, null);
System.out.println(json);
上面的代码中,我们首先定义了一个headers变量,用于存放京东万象API要求的Authorization头信息。然后,调用httpGet方法,传入请求的URL、headers参数以及null参数。最终,将返回的JSON数据打印到控制台。
另一个示例是使用百度API的查询IP地址接口。代码如下:
Map<String, String> params = new HashMap<>();
params.put("ip", "8.8.8.8");
JSONObject json = HttpUtils.httpGet("https://apis.baidu.com/apistore/iplookupservice/iplookup", null, params);
System.out.println(json);
在以上代码中,我们定义了一个params变量,用于存放查询参数。然后,调用httpGet方法,传入请求的URL、null参数以及params参数。最终,将返回的JSON数据打印到控制台。
以上就是Java发起HTTP请求获取返回的JSON对象的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java发起http请求获取返回的Json对象方法 - Python技术站