100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java实现发送post请求

java实现发送post请求

时间:2021-05-11 19:27:57

相关推荐

java实现发送post请求

1 背景介绍

最近有一个任务,完成数据获取和解析,需要发送带请求参数的post请求,才能拿到数据。之前没有接触过java发送post请求,但有接触过python的requets库,故写下这篇记录一下发送post请求。

2 基本实现

2.1需要的依赖:

import mons.httpclient.HttpClient;import mons.httpclient.HttpStatus;import mons.httpclient.methods.PostMethod;import mons.httpclient.methods.StringRequestEntity;

idea会自动识别上面这些类,选择自动导入就好。

2.2 工具类实现

HttpUtils,实现发送:

public class HttpUtils {public static String sendPostWithJson(String url, String jsonStr, HashMap<String,String> headers) {// 返回的结果String jsonResult = "";try {HttpClient client = new HttpClient();// 连接超时client.getHttpConnectionManager().getParams().setConnectionTimeout(3*1000);// 读取数据超时client.getHttpConnectionManager().getParams().setSoTimeout(3*60*1000);client.getParams().setContentCharset("UTF-8");PostMethod postMethod = new PostMethod(url);postMethod.setRequestHeader("content-type", headers.get("content-type"));// 非空if (null != jsonStr && !"".equals(jsonStr)) {StringRequestEntity requestEntity = new StringRequestEntity(jsonStr, headers.get("content-type"), "UTF-8");postMethod.setRequestEntity(requestEntity);}int status = client.executeMethod(postMethod);if (status == HttpStatus.SC_OK) {jsonResult = postMethod.getResponseBodyAsString();} else {throw new RuntimeException("接口连接失败!");}} catch (Exception e) {throw new RuntimeException("接口连接失败!");}return jsonResult;}}

测试:

public static void main(String[] args) {HashMap<String, String> headers = new HashMap<>(3);String requestUrl = "http://localhost:8070/test/rz/server/rzxx/at_VaildToken.do";String jsonStr = "{\"name\":\"张三\"}";headers.put("content-type", "application/json");// 发送post请求String resultData = HttpUtils.sendPostWithJson(requestUrl, jsonStr,headers);// 并接收返回结果System.out.println(resultData);}

解析使用阿里巴巴的fastJSON,把获取到的字符串变为JSON对象,然后进行遍历取出,最后进行操作,提前数据。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。