作者:手机用户2602918323 | 来源:互联网 | 2023-09-14 11:23
1.maven引入依赖
org.apache.httpcomponentshttpclient4.0.2
2.请求示例
package utils;import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;/*** http工具类*/
public class HttpUtils {public static String doPost(String url, Map paramsMap) {HttpClient httpClient = new DefaultHttpClient();HttpPost postRequest = new HttpPost();List params = new ArrayList<>();Set paramsNames = paramsMap.keySet();for (String paramsName : paramsNames) {NameValuePair param = new BasicNameValuePair(paramsName, String.valueOf(paramsMap.get(paramsName)));params.add(param);}try {HttpEntity httpEntity = new UrlEncodedFormEntity(params, "UTF-8");postRequest.setURI(new URI(url));postRequest.setEntity(httpEntity);HttpResponse respOnse= httpClient.execute(postRequest);if (response.getStatusLine().getStatusCode() == 200) {HttpEntity resEntity = response.getEntity();return EntityUtils.toString(resEntity, "utf-8");} else {HttpEntity resEntity = response.getEntity();String message = EntityUtils.toString(resEntity, "utf-8");System.out.println(message);}} catch (URISyntaxException | IOException e) {System.out.println("请求异常");e.printStackTrace();}return null;}
}
UrlEncodedFormEntity
用来设置请求的参数,参数类型为 List
BasicNameValuePair
类的内部实现非常简单,并不是使用的map存储,而是直接在类中声明了两个属性,一个name,一个value