HttpClient 사용 예시 (post, json, 설정 에이전트)
11569 단어 HttpClient
필요 한 jar 패키지: httpclient - 4.5.7. jar (다른 버 전도 가능 합 니 다. 4.0 이상 의 버 전 을 사용 하 는 것 이 좋 습 니 다. 버 전의 실현 방식 에 따라 일부 차이 가 있 기 때 문 입 니 다).
홈 페이지 다운로드 주소:http://hc.apache.org/downloads.cgi
내 자원 라 이브 러 리 다운로드 주소: httpclient - 4.5.7. jar
1. 일반 post 요청;
2. json 형식 매개 변수 요청;
3. 프 록 시 설정 요청;
package com.common.utils.http;
import java.io.IOException;
import java.net.SocketTimeoutException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpHost;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
/**
* httpClient
* @author zhaoheng
* @date 2019-03-07
*/
public class HttpReq {
/**
* POST
* @param url
* @param socketTimeout , , ;
* , ,
* @param param map
* @return
*/
public static String doPost(String url, int socketTimeout, Map param) {
// Httpclient
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = null;
String resultString = "";
try {
// Http Post
HttpPost httpPost = new HttpPost(url);
//
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000) // , 。
.setConnectionRequestTimeout(1000) // , 。
.setSocketTimeout(socketTimeout).build(); // , ; , , 。
httpPost.setConfig(requestConfig);
//
if (param != null) {
List paramList = new ArrayList();
for (String key : param.keySet()) {
paramList.add(new BasicNameValuePair(key, param.get(key)));
}
//
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
httpPost.setEntity(entity);
}
// http
response = httpClient.execute(httpPost);
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
} catch (Exception e) {
e.printStackTrace();
if (e instanceof SocketTimeoutException) {
System.out.println(" !!!");
}
} finally {
//
try {
if (null != httpClient) {
httpClient.close();
}
if (null != response) {
response.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return resultString;
}
/**
* POST ( json )
* @param url
* @param socketTimeout , , ;
* , ,
* @param jsonParam json
* @return
*/
public static String doPostJson(String url, int socketTimeout, String jsonParam) {
// Httpclient
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = null;
String resultString = "";
try {
// Http Post
HttpPost httpPost = new HttpPost(url);
//
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000) // , 。
.setConnectionRequestTimeout(1000) // , 。
.setSocketTimeout(socketTimeout).build(); // , ; , , 。
httpPost.setConfig(requestConfig);
//
StringEntity entity = new StringEntity(jsonParam, ContentType.APPLICATION_JSON);
httpPost.setEntity(entity);
// http
response = httpClient.execute(httpPost);
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
} catch (Exception e) {
e.printStackTrace();
if (e instanceof SocketTimeoutException) {
System.out.println(" !!!");
}
} finally {
//
try {
if (null != httpClient) {
httpClient.close();
}
if (null != response) {
response.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return resultString;
}
/**
* POST ( json )
* @param proxyIp IP
* @param port
* @param tcp ( :http、https)
* @param url
* @param socketTimeout , , ;
* , ,
* @param jsonParam json
* @return
*/
public static String doProxyPostJson(String proxyIp,int port,String tcp, String url,int socketTimeout, String jsonParam) {
// IP、 、
HttpHost proxy = new HttpHost(proxyIp, port, tcp);
//
RequestConfig defaultRequestConfig = RequestConfig.custom().setProxy(proxy).build();
// CloseableHttpClient
CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build();
CloseableHttpResponse response = null;
String resultString = "";
try {
// Http Post
HttpPost httpPost = new HttpPost(url);
//
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000) // , 。
.setConnectionRequestTimeout(1000) // , 。
.setSocketTimeout(socketTimeout).build(); // , ; , , 。
httpPost.setConfig(requestConfig);
//
StringEntity entity = new StringEntity(jsonParam, ContentType.APPLICATION_JSON);
httpPost.setEntity(entity);
// http
response = httpClient.execute(httpPost);
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
} catch (Exception e) {
e.printStackTrace();
if (e instanceof SocketTimeoutException) {
System.out.println(" !!!");
}
} finally {
//
try {
if (null != httpClient) {
httpClient.close();
}
if (null != response) {
response.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return resultString;
}
/**
* POST
* @param proxyIp IP
* @param port
* @param tcp ( :http、https)
* @param url
* @param socketTimeout , , ;
* , ,
* @param param map
* @return
*/
public static String doProxyPost(String proxyIp,int port,String tcp, String url, int socketTimeout, Map param) {
// IP、 、
HttpHost proxy = new HttpHost(proxyIp, port, tcp);
//
RequestConfig defaultRequestConfig = RequestConfig.custom().setProxy(proxy).build();
// CloseableHttpClient
CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build();
CloseableHttpResponse response = null;
String resultString = "";
try {
// Http Post
HttpPost httpPost = new HttpPost(url);
//
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000) // , 。
.setConnectionRequestTimeout(1000) // , 。
.setSocketTimeout(socketTimeout).build(); // , ; , , 。
httpPost.setConfig(requestConfig);
//
if (param != null) {
List paramList = new ArrayList();
for (String key : param.keySet()) {
paramList.add(new BasicNameValuePair(key, param.get(key)));
}
//
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
httpPost.setEntity(entity);
}
// http
response = httpClient.execute(httpPost);
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
} catch (Exception e) {
e.printStackTrace();
if (e instanceof SocketTimeoutException) {
System.out.println(" !!!");
}
} finally {
//
try {
if (null != httpClient) {
httpClient.close();
}
if (null != response) {
response.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return resultString;
}
/**
*
* @param args
*/
public static void main(String[] args) {
// post
String url = "http://127.0.0.1:8080/download/TestCon/test01";
Map param = new HashMap();
param.put("name", "welcome");
String result = HttpReq.doPost(url,3000, param);
System.out.println("result:"+result);
// json
String url2 = "http://127.0.0.1:8080/download/TestCon/test02";
String jsonParam = "{\"fileName\":\"httpClient.jar\",\"fileSize\":\"1024\"}";
String result2 = HttpReq.doPostJson(url2,5000, jsonParam);
System.out.println("result2:"+result2);
//
String url3 = "https://www.baidu.com";
Map param3 = new HashMap();
String result3 = HttpReq.doProxyPost(" ip", 8080, "http", url3,5000, param3);
System.out.println(result3);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【httpclient】에서의 요구로부터 controller까지의 흐름에 대해서 확인과 리팩토링이전에는 JQuery의 autocomplete, ajax 및 httpclient를 사용하여 자동 완성을 구현했지만 내용에 대해 희미하게만 파악할 수 없었습니다. 리팩토링을 실시하면서 내용을 확인한다. 우선, 외부 A...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.