使用HttpClient访问springboot项目接口返回JSON并获取指定key的value值

发送带json数据的请求,获取响应,并通过key=result,key=name获取响应正文多层json格式数据中name对应的value
HttpClient发送post请求过程
1.创建httpclient实例
2.设置请求的url路径
3.创建httppost实例
4.设置entity字符串数据
5.通过httpclient.execute()方法发送请求,并返回httpsponse对象。
6.解析httpresponse对象,关闭httpclient.

		String result = null;
		CloseableHttpClient ch = HttpClientBuilder.create().build();
		String url = "YOURIP";
		HttpPost post = new HttpPost(url);
		try {
		JSONObject json = new JSONObject();
		json.put("id", "1");
		json.put("name", "myself");
		json.put("age","20");
		System.err.println(json);
		StringEntity s = new StringEntity(json.toString());	
		//设置编码方式
		s.setContentEncoding("utf-8");
		//设置发送数据格式
		s.setContentType("application/json");
		post.setEntity(s);
		//获取响应
		HttpResponse response = ch.execute(post);
		if(response.getStatusLine().getStatusCode() == 200) {
			String str = response.getEntity().toString();
			System.err.println(str);
			result = "请求成功";
			获取响应正文
			String conResult = EntityUtils.toString(response.getEntity());
			System.out.println(conResult);
			//转换成map,不知道什么原因,conResult无法通过JSONObject.praseObject("conResult")方法转换成JSON对象。
			//JSONObject json1 = JSONObject.parseObject(conResult);
			Map<String,JSONObject> map1 = (Map)JSON.parse(conResult); 
			//通过key=result,key=name,获取name对应的value值 
			JSONObject json2 = map1.get("result");
			System.err.println(json2.get("name"));
		}else {
			int err = response.getStatusLine().getStatusCode();
			result = "发送失败,响应码:"+err;
		}
		} catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
        	try {
				ch.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
        }

具体的接口

@RestController
@RequestMapping("/connectDemo")
public class demoApi {
	
	@RequestMapping("/get")
	public JSONObject addUser(@RequestBody JSONObject userEntity)
    {
        System.out.println(JSONObject.toJSONString(userEntity));
        JSONObject json=new JSONObject();
        json.fluentPut("result",userEntity);
        return json;
    }
	
}
### 回答1: 可以使用 Java 的网络编程和 JSON 解析库来实现。首先,使用 Java 的网络编程库访问该网站,获取返回JSON 数据。然后,使用 JSON 解析库解析 JSON 数据,获取需要的。具体实现可以参考相关的 Java 网络编程和 JSON 解析的文档和示例代码。 ### 回答2: 在Java中访问某个网站获取JSON获取其中的某个可以通过以下步骤进行: 1. 导入必要的库 首先,我们需要导入Java中用于处理网络请求和JSON数据的库。常用的库包括Apache HttpClientJSON库如Jackson或Gson。 2. 发起HTTP请求 使用HTTP库发送GET或POST请求到目标网站的API地址,获取返回JSON数据。例如,可以使用Apache HttpClient库发送GET请求并获取响应结果: ```java HttpClient httpClient = HttpClientBuilder.create().build(); HttpGet httpGet = new HttpGet("http://example.com/api/sample"); HttpResponse response = httpClient.execute(httpGet); HttpEntity entity = response.getEntity(); String json = EntityUtils.toString(entity); ``` 3. 解析JSON数据 使用JSON库解析获取到的JSON数据,转换为Java对象。例如,使用Jackson库将JSON转换为HashMap对象: ```java ObjectMapper objectMapper = new ObjectMapper(); Map<String, Object> jsonData = objectMapper.readValue(json, new TypeReference<Map<String,Object>>(){}); ``` 4. 获取所需的 通过使用获取到的Java对象,我们可以获取JSON中的特定。例如,假设我们需要获取JSON中的某个名为"name"的,可以像这样获取: ```java String name = (String) jsonData.get("name"); ``` 整个过程就是通过发起HTTP请求获取JSON数据,然后使用JSON库解析数据并获取所需的。请注意,向网站发起请求可能涉及到网络权限和对应网站的访问限制,因此在实际代码中需要做相应的错误处理和异常处理。 ### 回答3: 要用Java访问某个网站获取JSON获取JSON的某个,首先我们需要使用一些库和类来帮助我们进行相关操作。下面是一个示例代码,演示了如何使用Java获取JSON获取其中的某个: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import org.json.JSONObject; public class JSONExample { public static void main(String[] args) { try { // 设置URL URL url = new URL("http://example.com/api/data"); // 建立HTTP连接 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // 设置请求及其他属性 connection.setRequestMethod("GET"); connection.setRequestProperty("Content-Type", "application/json"); // 获取响应码 int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { // 读取响应内容 BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; StringBuilder response = new StringBuilder(); while ((line = reader.readLine()) != null) { response.append(line); } reader.close(); // 解析JSON数据 JSONObject jsonObject = new JSONObject(response.toString()); // 获取JSON中的某个 String value = jsonObject.getString("key"); // 输出获取 System.out.println("Value: " + value); } else { System.out.println("Request failed with response code: " + responseCode); } // 关闭连接 connection.disconnect(); } catch (Exception e) { e.printStackTrace(); } } } ``` 在这个示例中,我们使用了`java.net`和`org.json`包中的类来建立HTTP连接、读取响应内容、解析JSON数据,并获取JSON中的某个。你需要根据实际情况替换URL、请求方法、请求属性、JSON的键等。这段代码通过调用`getString`方法获取JSON指定键(例如"key")对应的,并将其打印输出。 得注意的是,在实际编程中,你需要处理异常情况、添加错误处理等。此外,你还可以根据需要进一步对JSON数据进行解析和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值