import java.io.*;
import java.net.*;
/**
* http GET與POST請(qǐng)求處理
* java代碼示例
*
* Created by IntelliJ IDEA.
* User: volcano
* Date: 2019/11/8
* Time: 19:36
*/
public class Connection {
/**
* 處理http get請(qǐng)求
* @param path
* @return
* @throws MalformedURLException
*/
public static String doGet(String path) {
URL url = null;
HttpURLConnection conn = null;
InputStream inputStream = null;
BufferedReader br = null;
String response = "";
try {
//通過請(qǐng)求路徑實(shí)例化一個(gè)URL對(duì)象
url = new URL(path);
//通過實(shí)例化的URL對(duì)象創(chuàng)建一個(gè)http連接并轉(zhuǎn)換為HttpURLConnection類型
conn = (HttpURLConnection) url.openConnection();
//設(shè)置請(qǐng)求方式,這里我設(shè)置為GET方式
conn.setRequestMethod("GET");
//因?yàn)镚ET方式是獲取數(shù)據(jù)用的黎棠,所以需要讀取http的響應(yīng)內(nèi)容韭畸,因此connection需要啟用輸入流(doInput的默認(rèn)值為true滓玖,所以實(shí)際上也可以不寫這行代碼)
// conn.setDoInput(true);
//因?yàn)镚ET方式?jīng)]有請(qǐng)求體,所以不需要啟用輸出流(doOutput的默認(rèn)值為false虎眨,所以實(shí)際上也可以不寫這行代碼)
// conn.setDoInput(false);
//是否啟用緩存蚓曼,默認(rèn)是啟用的踢代,我這里設(shè)置為不啟用
conn.setUseCaches(false);
//通過conn,獲取InputStream對(duì)象
inputStream = conn.getInputStream();
br = new BufferedReader(new InputStreamReader(inputStream));
String line = "";
StringBuffer buffer = new StringBuffer();
//按行讀取服務(wù)端響應(yīng)的內(nèi)容
while ((line = br.readLine()) != null){
buffer.append(line + System.lineSeparator());
}
response = buffer.toString();
}catch (Exception e) {
e.printStackTrace();
} finally {
//關(guān)閉io對(duì)象以及connection對(duì)象
if (inputStream != null){
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (br != null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (conn != null){
conn.disconnect();
}
//打印到控制臺(tái)戒劫,查看響應(yīng)內(nèi)容
System.out.println(response);
return response;
}
}
/**
* 處理http POST請(qǐng)求
* @param path
* @return
*/
public static String doPost(String path, String body) {
URL url = null;
HttpURLConnection conn = null;
OutputStream outputStream = null;
BufferedWriter bw = null;
InputStream inputStream = null;
BufferedReader br = null;
String response = "";
try {
url = new URL(path);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
//先向服務(wù)端發(fā)送請(qǐng)求體內(nèi)容
outputStream = conn.getOutputStream();
bw = new BufferedWriter(new OutputStreamWriter(outputStream));
bw.write(body);
bw.flush();
//然后再讀取服務(wù)端響應(yīng)內(nèi)容
inputStream = conn.getInputStream();
br = new BufferedReader(new InputStreamReader(inputStream));
String line = "";
StringBuffer buffer = new StringBuffer();
while ((line = br.readLine()) != null){
buffer.append(line);
}
response = buffer.toString();
} catch (Exception e) {
e.printStackTrace();
}finally {
//關(guān)閉io對(duì)象以及connection對(duì)象
if (inputStream != null){
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (br != null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (outputStream != null){
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (bw != null){
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (conn != null){
conn.disconnect();
}
System.out.println(response);
return response;
}
}
/**
* 測(cè)試get與post方法
* @param args
*/
public static void main(String[] args) {
String path_get = "http://www.openldap.org/doc/admin24/intro.html#What%20is%20LDAP";
doGet(path_get);
//這里的地址可以依據(jù)自己的情況而定哦
String path_post = "http://localhost:port/login";
String body = "{\"login\":{\"userName\":\"test\",\"passwd\":\"qq123456\"}}";
doPost(path_post,body);
}
}
使用java代碼模擬HTTP GET與POST請(qǐng)求
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門彩倚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來筹我,“玉大人,你說我怎么就攤上這事帆离∈呷铮” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵哥谷,是天一觀的道長岸夯。 經(jīng)常有香客問我,道長们妥,這世上最難降的妖魔是什么猜扮? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮监婶,結(jié)果婚禮上旅赢,老公的妹妹穿的比我還像新娘。我一直安慰自己压储,他們只是感情好鲜漩,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著集惋,像睡著了一般孕似。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刮刑,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了鹉究?” 一聲冷哼從身側(cè)響起宇立,我...
- 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎自赔,沒想到半個(gè)月后妈嘹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡绍妨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年润脸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片他去。...
- 正文 年R本政府宣布行施,位于F島的核電站允坚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蛾号。R本人自食惡果不足惜稠项,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鲜结。 院中可真熱鬧展运,春花似錦、人聲如沸精刷。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽怒允。三九已至埂软,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纫事,已是汗流浹背勘畔。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長得像钾唬,于是被迫代替她去往敵國和親万哪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子侠驯,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 前言:因公司項(xiàng)目的需求伍绳,需要調(diào)用外部系統(tǒng)接口。參考了論壇上的各個(gè)文章乍桂。決定自己寫個(gè)筆記冲杀,以便更好的學(xué)習(xí),記錄睹酌。 廢...
- 現(xiàn)在的模擬發(fā)送請(qǐng)求插件很多比如老外的postman等采章,但親測(cè)咱們國內(nèi)的 ApiPost 更好用一些,因?yàn)樗粌H可以...
- 這里有兩種方法 第一種 使用request 第二種 使用封裝好的koa-request庫 get 請(qǐng)求與post請(qǐng)...
- 這篇也是接上一篇壶辜,發(fā)送請(qǐng)求的url就是前面創(chuàng)建的java web工程中有的悯舟。 1、HTTP中GET和POST的區(qū)別...