HttpUtils 요청 도구 클래스 코드
import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; 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.HttpGet;import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.client.utils.URIBuilder; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import com.pingan.qhcs.map.audit.constant.CodeConstant; import com.pingan.qhcs.map.audit.exception.MapException; public class HttpClientUtil { protected static Log logger = LogFactory.getLog(HttpClientUtil.class); private static PoolingHttpClientConnectionManager cm; private static String EMPTY_STR = ""; private static String UTF_8 = "UTF-8"; private static void init() { if (cm == null) { cm = new PoolingHttpClientConnectionManager(); cm.setMaxTotal(50);// 整个连接池最大连接数cm.setDefaultMaxPerRoute(5);// 每路由最大连接数,默认值是2 } }/** * 通过连接池获取HttpClient * * @return */public static CloseableHttpClient getHttpClient() { init();return HttpClients.custom().setConnectionManager(cm).build(); }public static String httpGetRequest(String url) { HttpGet httpGet = new HttpGet(url);return getResult(httpGet); }public static String httpGetRequest(String url, Map<String, Object> params) throws URISyntaxException { URIBuilder ub = new URIBuilder(); ub.setPath(url); ArrayList<NameValuePair> pairs = covertParams2NVPS(params); ub.setParameters(pairs); HttpGet httpGet = new HttpGet(ub.build()); return getResult(httpGet); }public static String httpGetRequest(String url, Map<String, Object> headers, Map<String, Object> params)throws URISyntaxException { URIBuilder ub = new URIBuilder(); ub.setPath(url); ArrayList<NameValuePair> pairs = covertParams2NVPS(params); ub.setParameters(pairs); HttpGet httpGet = new HttpGet(ub.build());for (Map.Entry<String, Object> param : headers.entrySet()) { httpGet.addHeader(param.getKey(), String.valueOf(param.getValue())); }return getResult(httpGet); } public static String httpPostRequest(String url) { HttpPost httpPost = new HttpPost(url);return getResult(httpPost); } public static String httpPostRequest(String url, Map<String, Object> params) throws UnsupportedEncodingException { HttpPost httpPost = new HttpPost(url); ArrayList<NameValuePair> pairs = covertParams2NVPS(params); httpPost.setEntity(new UrlEncodedFormEntity(pairs, UTF_8));return getResult(httpPost); } public static String httpPostRequest(String url, Map<String, Object> headers, Map<String, Object> params)throws UnsupportedEncodingException { HttpPost httpPost = new HttpPost(url); for (Map.Entry<String, Object> param : headers.entrySet()) { httpPost.addHeader(param.getKey(), String.valueOf(param.getValue())); } ArrayList<NameValuePair> pairs = covertParams2NVPS(params); httpPost.setEntity(new UrlEncodedFormEntity(pairs, UTF_8));return getResult(httpPost); } public static String httpPostRequest(String url, Map<String, Object> headers, String strBody)throws Exception { HttpPost httpPost = new HttpPost(url);for (Map.Entry<String, Object> param : headers.entrySet()) { httpPost.addHeader(param.getKey(), String.valueOf(param.getValue())); } httpPost.setEntity(new StringEntity(strBody, UTF_8));return getResult(httpPost); } private static ArrayList<NameValuePair> covertParams2NVPS(Map<String, Object> params) { ArrayList<NameValuePair> pairs = new ArrayList<NameValuePair>(); for (Map.Entry<String, Object> param : params.entrySet()) { pairs.add(new BasicNameValuePair(param.getKey(), String.valueOf(param.getValue()))); }return pairs; }/** * 处理Http请求 * * setConnectTimeout:设置连接超时时间,单位毫秒。 * setConnectionRequestTimeout:设置从connect Manager获取Connection 超时时间,单位毫秒。这个属性是新加的属性,因为目前版本是可以共享连接池的。 * setSocketTimeout:请求获取数据的超时时间,单位毫秒。 如果访问一个接口,多少时间内无法返回数据,就直接放弃此次调用。 * * @param request * @return */private static String getResult(HttpRequestBase request) { RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(60000) .setConnectionRequestTimeout(5000).setSocketTimeout(60000).build(); request.setConfig(requestConfig);// 设置请求和传输超时时间 // CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpClient httpClient = getHttpClient(); try { CloseableHttpResponse response = httpClient.execute(request); //执行请求 // response.getStatusLine().getStatusCode(); HttpEntity entity = response.getEntity(); if (entity != null) { // long len = entity.getContentLength();// -1 表示长度未知 String result = EntityUtils.toString(entity); response.close(); // httpClient.close(); return result; } } catch (ClientProtocolException e) { logger.error("[maperror] HttpClientUtil ClientProtocolException : " + e.getMessage()); throw new MapException(CodeConstant.CODE_CONNECT_FAIL, "HttpClientUtil ClientProtocolException :" + e.getMessage()); } catch (IOException e) { logger.error("[maperror] HttpClientUtil IOException : " + e.getMessage()); throw new MapException(CodeConstant.CODE_CONNECT_FAIL, "HttpClientUtil IOException :" + e.getMessage()); } finally { } return EMPTY_STR; } }
위 내용은 HttpUtils 요청 도구 클래스 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

목차 Meme의 인기가 남아 있습니다 : 포도 나무와 당나귀는 계속 상승합니다. 기술적 이야기 가열 : AI 및 개인 정보 보호 컴퓨팅은 체인, RWA 및 지역 내러티브에서 인기가 있습니다. Omni의 신흥 스타 Huobi HTX Wealth Effect는 계속 발표되고 있습니다. 7 월 28 일부터 8 월 4 일까지 Huobi HTX와 관련하여 Global Crypto Market은 휘발성 패턴을 유지했으며 핫스팟 회전 속도가 가속화되었습니다. 이번 주 Huobi HTX가 시작한 자산 중 Meme, AI, 개인 정보 보호 컴퓨팅, 크로스 체인 및 RWA가 함께 발전했으며 시장 부 효과가 계속 나타납니다. 이것은 또한 Huobi HTX가 새로운 자산의 집단적 증가를 달성하여 최첨단 프로젝트 광업 및 생태 학적 레이아웃에서 미래 지향적 인 특성을 더욱 확인하고 사용자가 새로운 시장주기를 파악할 수 있도록 강력한 지원을 제공하는 7 월 이후 5 주 연속 주입니다. Huobi (HTX

목차 거래량이란 무엇입니까? 거래량과 가격 간의 관계 거래에 거래량 사용은 얼마입니까? 거래량 1을 사용할 때 주목해야 할 사항. 거래량의 증폭은 반드시 유리한 일이 아닙니다. 2. 비정상적인 거래량은 기초 및 뉴스로 해석되어야합니다. 3. 다른 시장 단계에서 거래량의 해석은 4가 매우 다릅니다. 거래량 사기의 가능성, 브러시 볼륨, 브러시 볼륨의 전환량에 대한주의를 기울여야합니다. 가격 패턴 및 기술 지표에 대한 포괄적 인 분석에서 분석 된 Oanda는 고유 한 "포지션 데이터 차트"Oanda 오픈 포지션 거래 원리 및 응용 프로그램을 제공합니까? 첫 번째 사분면

2025 년 7 월 18 일, 미국 대통령은 "미국 안정적인 코인 국가 혁신법을 안내하고 설립하는"(이하 "천재 법"이라고 함)에 서명하여 디지털 자산 규제 분야의 역사적 단계를 나타 냈습니다. 이 법안은 미국의 첫 연방 수준의 Stablecoin 특별 법률로서 "지불 기반 Stablecoins"에 대한 포괄적이고 명확한 법적 및 규제 프레임 워크를 설정하는 것을 목표로합니다.

암호 화폐에서는 기회와 위험으로 가득 찬 분야에서 2,000 위안과 같은 제한된 원칙을 20 만 위안에 추가하면 100 배 증가가 필요하다는 것을 의미합니다. 먼 꿈은 아니지만 확실히 쉬운 과정은 아닙니다. 정확한 전략, 특별한 인내심, 시장에 대한 깊은 이해 및 약간의 운이 필요합니다. 이 여정은 투자 비전뿐만 아니라 인간 본성과 위험을 통제하는 능력에 대한 통찰력을 테스트합니다.

먼저 공식 채널을 통해 Binance 앱을 다운로드하십시오. 1. 기사의 링크를 클릭하여 다운로드를 시작하십시오. 2. 설치 파일을 완료하려면 "여전히 다운로드"를 선택하십시오. 3. 다운로드 목록에서 파일을 찾으십시오. 설치하는 동안 1. 파일을 클릭하여 설치를 시작합니다. 2. 휴대 전화의 "알 수없는 소스에서 응용 프로그램을 설치 허용"켜십시오. 3. 승인 후 프롬프트에 따라 설치를 완료하십시오. 4. 데스크탑 아이콘을 클릭하여 성공 후 사용하십시오. 강력한 비밀번호를 사용하고 자산의 보안을 보장하기 위해 니모닉 및 개인 키를 유지하십시오. 마지막으로 공식 채널을 통해 운영을 다운로드하여 표준화하여 계정 보안을 보장합니다.

시장 인식은 비트 코인 또는 XRP가 투자 할 가치가있는 것에 대해 나뉘어져 있으며, 더 높은 장기 수익을 제공 할 수있는 사람. 비트 코인은 많은 사람들에 의해 "디지털 금"으로 간주되며 가치 도구의 저장소이며, 그 부족은 가치 제안의 핵심입니다. 반면, XRP는 기존의 SWIFT 시스템을 대체하기 위해 국경 간 지불을 해결하는 데 중점을두고 빠른 거래 속도 및 저렴한 비용으로 이점을 제공합니다.

디렉토리 조수는 무엇입니까? Sidekick 's Journey Sidekick의 역사와 중요도 측면 키 특징 Sidekick Founder $ K- Sidekicklivefi 경제 홍보 $ K Sidekick $ k 토큰 경제 가격 예측 측면 킥 Token 2026 가격 예측 2030 가격 예측 측면 킥 토큰 2035 가격 예측 사이드 킥 토큰 2040 가격 예측 측면도 예측.

신분증을 등록하고 완료하고 계약 계좌를 개설하며 SPOT 계정에서 계약 계좌로 자금을 이체해야합니다. 2. USDT 또는 통화 표준 계약을 선택하고 거래 쌍을 선택하고 1 ~ 125 배의 레버리지를 설정하십시오. 3. 한도 명령, 시장 주문 등과 같은 주문을 통한 오픈 포지션, 정지 손실을 설정하고 위험을 통제하기 위해 이익을 얻고, 적시에 실시간으로 위치를 모니터링하고, 가까운 위치를 모니터링합니다. 4. 위험 환경 설정에 따라 전체 위치 모드 (병합 마진) 또는 위치 별 모드 (독립 마진)를 선택하십시오. 5. Binance Trading Robot을 사용하여 그리드 거래 전략과 같은 자동 거래를 달성하여 거래 효율성 및 인텔리전스를 개선 할 수 있습니다. 이 단계를 완전히 파악하면 Binance 플랫폼에서 효율적이고 제어 가능한 계약 거래를 수행하는 데 도움이됩니다.
