




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第java中如何使用HttpClient調(diào)用接口目錄java使用HttpClient調(diào)用接口HttpClient提供的主要的功能直接言歸正傳了?。。?!上代碼java的HttpClient調(diào)用遠程接口使用方法實例
java使用HttpClient調(diào)用接口
HttpClient提供的主要的功能
(1)實現(xiàn)了所有HTTP的方法(GET,POST,PUT,DELETE等)
(2)支持自動轉(zhuǎn)向
(3)支持HTTPS協(xié)議
(4)支持代理服務器等
直接言歸正傳了?。。。∩洗a
publicstaticStringsendPutForm(Stringurl,MapString,Stringmap,Stringencoding)throwsParseException,IOException{
Stringbody="";
//打印了一下我推送的json數(shù)據(jù)
("我推送的json數(shù)據(jù):"+map);
("我推送的url:"+url);
CloseableHttpResponseresponse=null;
///獲得Http客戶端
CloseableHttpClientclient=HttpClients.createDefault();
ListNameValuePairparameters=newArrayListNameValuePair
for(Map.EntryString,Stringentry:map.entrySet()){
System.out.println("key="+entry.getKey()+",value="+entry.getValue());
parameters.add(newBasicNameValuePair(entry.getKey(),entry.getValue()));
UrlEncodedFormEntityformEntity=newUrlEncodedFormEntity(parameters);
//配置信息
//設置連接超時時間(單位毫秒)
//設置請求超時時間(單位毫秒)
//socket讀寫超時時間(單位毫秒)
RequestConfigrequestConfig=RequestConfig.custom()
.setConnectTimeout(50000).setConnectionRequestTimeout(50000)
.setSocketTimeout(50000).build();
//向指定資源位置上傳內(nèi)容//創(chuàng)建Post請求
HttpPosthttpPost=newHttpPost(url);
httpPost.setConfig(requestConfig);
httpPost.addHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");
httpPost.setEntity(formEntity);
try{
response=client.execute(httpPost);
//通過response中的getEntity()方法獲取返回值
HttpEntityentity=response.getEntity();
if(entity!=null){
body=EntityUtils.toString(entity,encoding);
}catch(Exceptione){
//TODO:handleexception
e.printStackTrace();
}finally{
httpPost.abort();
if(response!=null){
EntityUtils.consumeQuietly(response.getEntity());
("body:"+body);
returnbody;
代碼其實就是這么多,還有好多形式。大家可以參考寫一下。
java的HttpClient調(diào)用遠程接口
httpClient比jdk自帶的URLConection更加易用和方便,這里介紹一下使用httpClient來調(diào)用遠程接口。
首先導入相關的依賴包:
!--httpClient--
dependency
groupIdorg.apache.httpcomponents/groupId
artifactIdhttpclient/artifactId
version4.5.3/version
/dependency
使用方法
1,創(chuàng)建HttpClient對象;
2,指定請求URL,并創(chuàng)建請求對象,如果是get請求則創(chuàng)建HttpGet對象,post則創(chuàng)建HttpPost對象;
3,如果請求帶有參數(shù),對于get請求可直接在URL中加上參數(shù)請求,或者使用setParam(HetpParamsparams)方法設置參數(shù),對于HttpPost請求,可使用setParam(HetpParamsparams)方法或者調(diào)用setEntity(HttpEntityentity)方法設置參數(shù);
4,調(diào)用httpClient的execute(HttpUriRequestrequest)執(zhí)行請求,返回結(jié)果是一個response對象;
5,通過response的getHeaders(Stringname)或getAllHeaders()可獲得請求頭部信息,getEntity()方法獲取HttpEntity對象,該對象包裝了服務器的響應內(nèi)容。
實例
我使用了property文件來保存不同API對應的鏈接,也可以除去properties文件的讀取代碼,直接將變量API換成所需URL
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.IOException;
import.URL;
importjava.util.Map;
importjava.util.Properties;
importorg.apache.http.client.methods.CloseableHttpResponse;
importorg.apache.http.client.methods.HttpGet;
importorg.apache.http.impl.client.CloseableHttpClient;
importorg.apache.http.impl.client.HttpClients;
importorg.apache.http.util.EntityUtils;
publicclassAPIUtil{
*返回API調(diào)用結(jié)果
*@paramAPIName接口在perties中的名稱
*@paramparams訪問api所需的參數(shù)及參數(shù)值
*@return此處返回的是JSON格式的數(shù)據(jù)
publicstaticStringAPI(StringAPIName,MapString,Objectparams){
Stringcontent="";
//請求結(jié)果
CloseableHttpResponseresponse=null;
//實例化httpclient
CloseableHttpClienthttpclient=HttpClients.createDefault();
try{
//讀取配置文件的URL
Propertiesproperties=newProperties();
URLfileURL=APIUtil.class.getClassLoader().getResource("perties");
properties.load(newFileInputStream(newFile(fileURL.getFile())));
StringAPI=properties.getProperty(APIName);
//構(gòu)造url請求
StringBuilderurl=newStringBuilder(API);
if(params!=nullparams.size()0){
url.append("");
for(Map.EntryString,Objectentry:params.entrySet()){
url.append(entry.getKey()+"="+entry.getValue()+"
url.substring(0,url.length()-1);
//實例化get方法
HttpGethttpget=newHttpGet(url.toString());
//執(zhí)行g(shù)et請求
response=httpclient.execute(httpget);
if(response.getStatusLine(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國汽車用塑料行業(yè)市場調(diào)查報告
- 2024年中國低空油煙凈化器行業(yè)調(diào)查報告
- 中國樟腦磺酸鈉行業(yè)市場調(diào)查報告
- 中國棉紡經(jīng)紗管行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告(2024-2030)
- 2025年中國轉(zhuǎn)向器托架行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年中國一位無級調(diào)光器行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2020-2025年中國林木培育和種植市場前景預測及未來發(fā)展趨勢報告
- 純化水水質(zhì)檢驗報告
- 2021-2026年中國自動化藥房設備行業(yè)全景評估及投資規(guī)劃建議報告
- 2025-2030年中國世紀情酒行業(yè)深度研究分析報告
- 低空經(jīng)濟八大應用場景與實踐案例解析方案
- 廣東省深圳市福田區(qū)2023-2024學年一年級下學期語文期末試卷(含答案)
- 2025年物業(yè)管理員(中級)職業(yè)技能鑒定試卷(含物業(yè)設施設備維護案例)
- 下肢功能鍛煉的護理方法
- 核電站清潔維護派遣及環(huán)境監(jiān)測服務合同
- 行政管理學科試題及答案分享
- 江蘇南通2025年公開招聘農(nóng)村(村務)工作者筆試題帶答案分析
- 《公司法教學課件》課件
- 造價咨詢保密管理制度
- 支吊架廠家抗震支架安裝規(guī)范圖集
- 2025年江蘇瑞海投資控股集團有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論