JavaShuo
欄目
標籤
java使用httpclient封裝post請求和get的請求
時間 2019-11-11
標籤
java
使用
httpclient
封裝
post
求和
請求
欄目
Java
简体版
原文
原文鏈接
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;
/**
* @author 馬弦
* @date 2017年10月23日 下午2:49
* 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();
//發送get請求
HttpGet request =
new HttpGet(url);
HttpResponse response = client.execute(request);
/**請求發送成功,並獲得響應**/
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
/**讀取服務器返回過來的json字符串數據**/
String strResult = EntityUtils.toString(response.getEntity());
return strResult;
}
}
catch (IOException e) {
e.printStackTrace();
}
return
null;
}
/**
* post請求(用於key-value格式的參數)
* @param url
* @param params
* @return
*/
public
static String doPost(String url, Map params){
BufferedReader in =
null;
try {
// 定義HttpClient
HttpClient client =
new DefaultHttpClient();
// 實例化HTTP方法
HttpPost request =
new HttpPost();
request.setURI(
new URI(url));
//設置參數
List<NameValuePair> nvps =
new ArrayList<NameValuePair>();
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(
"狀態碼:" + code);
return
null;
}
}
catch(Exception e){
e.printStackTrace();
return
null;
}
}
/**
* post請求(用於請求json格式的參數)
* @param url
* @param params
* @return
*/
public
static String doPost(String url, String params)
throws Exception {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost =
new HttpPost(url);
// 建立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;
}
}
httpclient是一個很是經常使用的工具,在項目開發的時候,常常須要請求第三方的接口,我整理好了這段代碼,之後回頭找的時候就方便啦!
java
相關文章
1.
java使用httpclient封裝post請求和get的請求
2.
HTTPClient Get請求 POST請求
3.
HttpClient的Post請求和Get請求
4.
get請求和post請求
5.
HttpClient入門get post請求
6.
HttpClient 4.5.3 get和post請求https post
7.
使用HttpClient進行Get請求使用HttpClient進行Get請求
8.
使用httpClient發送get\post請求
9.
java HttpClient GET請求
10.
使用httpclient發送post請求與get請求
更多相關文章...
•
HTTP 請求方法
-
HTTP 教程
•
發送ICMP時間戳請求
-
TCP/IP教程
•
Composer 安裝與使用
•
適用於PHP初學者的學習線路和建議
相關標籤/搜索
請求
請求之密
AJAX請求
請求體
請求者
併發請求
請求頭
請使用
請用
HTTP/TCP
系統網絡
軟件設計
Java
XLink 和 XPointer 教程
Hibernate教程
MyBatis教程
java
應用
Java 8
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
[最佳實踐]瞭解 Eolinker 如何助力遠程辦公
2.
katalon studio 安裝教程
3.
精通hibernate(harness hibernate oreilly)中的一個」錯誤「
4.
ECharts立體圓柱型
5.
零拷貝總結
6.
6 傳輸層
7.
Github協作圖想
8.
Cannot load 32-bit SWT libraries on 64-bit JVM
9.
IntelliJ IDEA 找其歷史版本
10.
Unity3D(二)遊戲對象及組件
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
java使用httpclient封裝post請求和get的請求
2.
HTTPClient Get請求 POST請求
3.
HttpClient的Post請求和Get請求
4.
get請求和post請求
5.
HttpClient入門get post請求
6.
HttpClient 4.5.3 get和post請求https post
7.
使用HttpClient進行Get請求使用HttpClient進行Get請求
8.
使用httpClient發送get\post請求
9.
java HttpClient GET請求
10.
使用httpclient發送post請求與get請求
>>更多相關文章<<