java调用接口传递参数_JAVA接口传递参数(POST),从接口接收数据(JSON) -----记录...
时间: 2023-09-18 13:11:18 浏览: 387
好的,关于JAVA调用接口传递参数和接收JSON数据,可以通过以下步骤来实现:
1.导入相关的依赖包,例如Apache HttpClient、FastJSON等。
2.构造请求参数并转换为JSON格式。可以使用FastJSON将Java对象转换为JSON字符串。
3.创建HttpClient对象,并设置请求方法、请求头、请求体等参数。请求方法为POST,请求头中需要设置Content-Type为application/json。
4.执行请求并获取响应。可以使用HttpClient执行请求,并获取响应。响应中包含了接口返回的JSON数据。
5.解析JSON数据并处理结果。可以使用FastJSON将JSON字符串转换为Java对象,然后根据接口返回的数据进行相应的处理。
以下是示例代码:
```java
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHeaders;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class InterfaceTest {
public static void main(String[] args) throws IOException {
// 构造请求参数
Map<String, Object> params = new HashMap<String, Object>();
params.put("username", "test");
params.put("password", "123456");
String jsonStr = JSON.toJSONString(params);
// 创建HttpClient对象
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("http://localhost:8080/api/login");
// 设置请求头
httpPost.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
// 设置请求体
StringEntity stringEntity = new StringEntity(jsonStr, "UTF-8");
httpPost.setEntity(stringEntity);
// 执行请求并获取响应
CloseableHttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
String responseStr = EntityUtils.toString(httpEntity, "UTF-8");
// 解析JSON数据并处理结果
JSONObject jsonObject = JSON.parseObject(responseStr);
int code = jsonObject.getIntValue("code");
String message = jsonObject.getString("message");
if (code == 0) {
// 登录成功
String token = jsonObject.getString("token");
System.out.println("登录成功,Token为:" + token);
} else {
// 登录失败
System.out.println("登录失败,原因:" + message);
}
// 关闭HttpClient和响应流
httpResponse.close();
httpClient.close();
}
}
```
注意:以上代码仅供参考,具体实现需要根据接口的具体要求进行调整。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)