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.
IDEA 2019.2解讀:性能更好,體驗更優!
2.
使用雲效搭建前端代碼倉庫管理,構建與部署
3.
Windows本地SVN服務器創建用戶和版本庫使用
4.
Sqli-labs-Less-46(筆記)
5.
Docker真正的入門
6.
vue面試知識點
7.
改變jre目錄之後要做的修改
8.
2019.2.23VScode的c++配置詳細方法
9.
從零開始OpenCV遇到的問題一
10.
創建動畫剪輯
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
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請求
>>更多相關文章<<