




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第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)支持代理服務(wù)器等
直接言歸正傳了?。。?!上代碼
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);
//配置信息
//設(shè)置連接超時時間(單位毫秒)
//設(shè)置請求超時時間(單位毫秒)
//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)用遠程接口。
首先導(dǎo)入相關(guān)的依賴包:
!--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è)置參數(shù),對于HttpPost請求,可使用setParam(HetpParamsparams)方法或者調(diào)用setEntity(HttpEntityentity)方法設(shè)置參數(shù);
4,調(diào)用httpClient的execute(HttpUriRequestrequest)執(zhí)行請求,返回結(jié)果是一個response對象;
5,通過response的getHeaders(Stringname)或getAllHeaders()可獲得請求頭部信息,getEntity()方法獲取HttpEntity對象,該對象包裝了服務(wù)器的響應(yīng)內(nèi)容。
實例
我使用了property文件來保存不同API對應(yīng)的鏈接,也可以除去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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)藥流通行業(yè)供應(yīng)鏈可視化與成本控制策略研究報告
- 中國儲能電池市場2025年能源資源應(yīng)用分析報告
- 河北省廊坊市2025屆英語八年級第二學(xué)期期末復(fù)習(xí)檢測模擬試題含答案
- 保安崗位科目題庫及答案
- 2025年家具制造業(yè)個性化定制生產(chǎn)模式下的個性化定制生產(chǎn)模式下的產(chǎn)業(yè)競爭力分析報告
- 安全注射管理試題及答案
- 安全試題分類及答案大全
- 安全環(huán)保試題題庫及答案
- 溝通培訓(xùn)課件模板
- 學(xué)校禮儀接待培訓(xùn)課件
- GB/T 32151.6-2015溫室氣體排放核算與報告要求第6部分:民用航空企業(yè)
- GB/T 13936-2014硫化橡膠與金屬粘接拉伸剪切強度測定方法
- GB 29837-2013火災(zāi)探測報警產(chǎn)品的維修保養(yǎng)與報廢
- 一例慢阻肺病人護理個案
- 建平中學(xué)自招真題解析
- DB50-T 1293-2022 松材線蟲病疫木除治技術(shù)規(guī)范(標準文本)
- 微電子工藝實驗報告
- 金屬材料檢驗的標準課件
- 動物疫病流行病學(xué)調(diào)查表診斷送檢用
- 模具技術(shù)要求
- 廣東省公務(wù)員錄用審批表
評論
0/150
提交評論