httpclient請求

package com.hq.boss.utils;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.URI;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.HttpStatus;

import org.apache.http.NameValuePair;

import org.apache.http.StatusLine;

import org.apache.http.client.HttpClient;

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.entity.StringEntity;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.protocol.HTTP;

import org.apache.http.util.EntityUtils;

import org.apache.log4j.Logger;

/**

* HttpClient工具類

*/

public class HttpUtil {

private static Logger logger =Logger.getLogger(HttpUtil.class);

/**

* get請求

* @return

*/

? public static String doGet(String url) {

try {

HttpClient client =new DefaultHttpClient();

//發(fā)送get請求

? ? ? ? HttpGet request =new HttpGet(url);

HttpResponse response =client.execute(request);

/**請求發(fā)送成功,并得到響應(yīng)**/

? ? ? ? if (response.getStatusLine().getStatusCode() ==HttpStatus.SC_OK) {

/**讀取服務(wù)器返回過來的json字符串?dāng)?shù)據(jù)**/

? ? ? ? ? ? String strResult =EntityUtils.toString(response.getEntity());

return strResult;

}

}

catch (IOException e) {

e.printStackTrace();

}

return null;

}

/**

* post請求(用于key-value格式的參數(shù))

? ? * @param url

? ? * @param params

? ? * @return

*/

? public static String doPost(String url,Map params){

BufferedReader in =null;

try {

// 定義HttpClient

? ? ? ? HttpClient client =new DefaultHttpClient();

// 實(shí)例化HTTP方法

? ? ? ? HttpPost request =new HttpPost();

request.setURI(new URI(url));

//設(shè)置參數(shù)

? ? ? ? Listnvps =new ArrayList();

for (Iterator iter = params.keySet().iterator();iter.hasNext();) {

String name = (String)iter.next();

String value =String.valueOf(params.get(name));

nvps.add(new BasicNameValuePair(name,value));

//System.out.println(name +"-"+value);

? ? ? ? }

request.setEntity(new UrlEncodedFormEntity(nvps,HTTP.UTF_8));

HttpResponse response =client.execute(request);

int code =response.getStatusLine().getStatusCode();

if(code ==200){//請求成功

? ? ? ? ? ? in =new BufferedReader(new InputStreamReader(response.getEntity()

.getContent(),"utf-8"));

StringBuffer sb =new StringBuffer("");

String line ="";

String NL =System.getProperty("line.separator");

while ((line =in.readLine()) !=null) {

sb.append(line +NL);

}

in.close();

return sb.toString();

}

else{//

? ? ? ? ? ? System.out.println("狀態(tài)碼:" +code);

return null;

}

}

catch(Exception e){

e.printStackTrace();

return null;

}

}

/**

* post請求(用于請求json格式的參數(shù))

? ? * @param url

? ? * @param params

? ? * @return

*/

? public static String doPost(String url,String params)throws Exception {

CloseableHttpClient httpclient =HttpClients.createDefault();

HttpPost httpPost =new HttpPost(url);// 創(chuàng)建httpPost

? ? ? httpPost.setHeader("Accept","application/json");

httpPost.setHeader("Content-Type","application/json");

String charSet ="UTF-8";

StringEntity entity =new StringEntity(params,charSet);

httpPost.setEntity(entity);

CloseableHttpResponse response =null;

try {

response =httpclient.execute(httpPost);

StatusLine status =response.getStatusLine();

int state =status.getStatusCode();

if (state ==HttpStatus.SC_OK) {

HttpEntity responseEntity =response.getEntity();

String jsonString =EntityUtils.toString(responseEntity);

return jsonString;

}

else{

logger.error("請求返回:"+state+"("+url+")");

}

}

finally {

if (response !=null) {

try {

response.close();

}catch (IOException e) {

e.printStackTrace();

}

}

try {

httpclient.close();

}catch (IOException e) {

e.printStackTrace();

}

}

return null;

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末整吆,一起剝皮案震驚了整個(gè)濱河市雇庙,隨后出現(xiàn)的幾起案子楞件,更是在濱河造成了極大的恐慌,老刑警劉巖朝捆,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件憋他,死亡現(xiàn)場離奇詭異,居然都是意外死亡愿阐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門趾疚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缨历,“玉大人,你說我怎么就攤上這事糙麦⌒练酰” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵赡磅,是天一觀的道長魄缚。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么冶匹? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任习劫,我火速辦了婚禮,結(jié)果婚禮上嚼隘,老公的妹妹穿的比我還像新娘诽里。我一直安慰自己,他們只是感情好飞蛹,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布谤狡。 她就那樣靜靜地躺著,像睡著了一般桩皿。 火紅的嫁衣襯著肌膚如雪豌汇。 梳的紋絲不亂的頭發(fā)上幢炸,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天泄隔,我揣著相機(jī)與錄音,去河邊找鬼宛徊。 笑死佛嬉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的闸天。 我是一名探鬼主播暖呕,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼苞氮!你這毒婦竟也來了湾揽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤笼吟,失蹤者是張志新(化名)和其女友劉穎库物,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贷帮,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡戚揭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撵枢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片民晒。...
    茶點(diǎn)故事閱讀 40,852評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖锄禽,靈堂內(nèi)的尸體忽然破棺而出潜必,到底是詐尸還是另有隱情,我是刑警寧澤沃但,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布刮便,位于F島的核電站,受9級特大地震影響绽慈,放射性物質(zhì)發(fā)生泄漏恨旱。R本人自食惡果不足惜辈毯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搜贤。 院中可真熱鬧谆沃,春花似錦、人聲如沸仪芒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掂名。三九已至据沈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間饺蔑,已是汗流浹背锌介。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猾警,地道東北人孔祸。 一個(gè)月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像发皿,于是被迫代替她去往敵國和親崔慧。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理穴墅,服務(wù)發(fā)現(xiàn)惶室,斷路器,智...
    卡卡羅2017閱讀 134,715評論 18 139
  • apache下的httpclient工具可大大簡化開發(fā)過程中的點(diǎn)對點(diǎn)通信玄货,本人將以微信多媒體接口為例皇钞,展示http...
    劃破的天空閱讀 5,301評論 0 32
  • HttpClient是Apache Jakarta Common下的子項(xiàng)目,用來提供高效的誉结、最新的鹅士、功能豐富的支持...
    剽悍一只雞閱讀 3,348評論 1 1
  • package com.taotao.utils; import com.thoughtworks.xstream...
    Puppy_7ada閱讀 1,253評論 1 0
  • 初遇時(shí),在將秋未秋的八月末央 幾許煙霞惩坑,浥紅了寂寂天涯 似失火的天堂 縈紆了我的過往 顰顰一蹙掉盅,牽惹我為你駐足 碧...
    四月白花閱讀 209評論 0 2