目錄
一、postman 的下載安裝以及簡(jiǎn)單介紹
1、下載安裝
2、postman的介紹
二、通過(guò) Java socket 構(gòu)造 HTTP 請(qǐng)求
? ? ? ? 構(gòu)造http請(qǐng)求的方式有兩種:(1)通過(guò)代碼構(gòu)造(有一點(diǎn)難度)? ? ? ?(2)通過(guò)第三方工具構(gòu)造(非常容易)。
? ? ? ? 下面介紹第三方工具構(gòu)造http請(qǐng)求,這個(gè)工具就是:postman。下面介紹postman的下載安裝以及簡(jiǎn)單介紹
一、postman 的下載安裝以及簡(jiǎn)單介紹
1、下載安裝
? ? ? ? 因?yàn)槲覜](méi)有掛梯子,官網(wǎng)加載不出來(lái)(官網(wǎng)地址:Postman API Platform),大家就自行在網(wǎng)上找資源吧,下載完后,我們按照指引,往下next。具體安裝細(xì)節(jié),可以參考這位大佬文章:postman官網(wǎng)下載安裝登錄測(cè)試詳細(xì)教程-CSDN博客
? ? ? ? 第一次安裝,需要進(jìn)行登錄,我們注冊(cè)一個(gè)賬戶。如圖:
? ? ? ? 登錄完成后的界面,如圖:
2、postman的介紹
? ? ? ? 點(diǎn)擊Workspaces,這里指的是工作空間,我們點(diǎn)擊創(chuàng)建新的工作空間,如圖:
? ? ? ? 選擇一些選項(xiàng),如圖:
? ? ? ? 創(chuàng)建完后,點(diǎn)擊這里的+號(hào),如圖:
? ? ? ? 就可以構(gòu)造http請(qǐng)求了,如圖:
? ? ? ? 這里每個(gè)標(biāo)簽頁(yè),都是一個(gè)構(gòu)造http請(qǐng)求的配置頁(yè)面,上面的send按鈕,是發(fā)送請(qǐng)求到目標(biāo)服務(wù)器的按鈕。
構(gòu)造請(qǐng)求的一些功能選項(xiàng)
? ? ? ? url,可以在這里寫(xiě)入,如圖:
? ? ? ? query string可以在這里添加,如圖:
? ? ? ? 添加 a = 11,b = 22,如圖:
? ? ? ? 報(bào)頭(header),如圖:
? ? ? ? 正文(body),如圖:
? ? ? ? 然后我們點(diǎn)擊send(發(fā)送HTTP請(qǐng)求)試試,下面這里會(huì)得到一個(gè)響應(yīng)的結(jié)果,如圖:
? ? ? ? 對(duì)了,postman還可以生成對(duì)應(yīng)語(yǔ)言的代碼,如圖,點(diǎn)擊這個(gè)選項(xiàng):
? ? ? ? 隨便選擇一個(gè),如圖:
? ? ? ? 這就是對(duì)應(yīng)語(yǔ)言,使用代碼構(gòu)造的HTTP請(qǐng)求。
? ? ? ? okHttpClient是一個(gè)比較知名的 Java 的客戶端的 HTTP 客戶端庫(kù),后續(xù)如果要用到它,但不知道代碼咋寫(xiě),就可以在這里生成代碼。
????????除此之外,postman還是一個(gè)有對(duì)象的軟件,它的對(duì)象是postwoman。
????????構(gòu)造http請(qǐng)求還能使用 form表單 和 ajax,這里就不做討論了。
二、通過(guò) Java socket 構(gòu)造 HTTP 請(qǐng)求
? ? ? ? 所謂的 HTTP 請(qǐng)求,本質(zhì)就是按照HTTP的格式,往TCP Socket 里寫(xiě)入一個(gè)字符串;所謂的 HTTP 響應(yīng),本質(zhì)就是按照TCP Socket 中讀取一個(gè)字符串,按照 HTTP 協(xié)議的格式來(lái)解析;文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-854612.html
? ? ? ? 基于 Socket 的知識(shí),完全可以構(gòu)造出一個(gè)簡(jiǎn)單的 HTTP 客戶端程序,用來(lái)發(fā)送 HTTP 請(qǐng)求,代碼如下:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-854612.html
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class HttpClient {
private Socket socket;
private String ip;
private int port;
public HttpClient(String ip, int port) throws IOException {
this.ip = ip;
this.port = port;
socket = new Socket(ip, port);
}
public String get(String url) throws IOException {
StringBuilder request = new StringBuilder();
// 構(gòu)造??
request.append("GET " + url + " HTTP/1.1\n");
// 構(gòu)造 header
request.append("Host: " + ip + ":" + port + "\n");
// 構(gòu)造 空?
request.append("\n");
// 發(fā)送數(shù)據(jù)
OutputStream outputStream = socket.getOutputStream();
outputStream.write(request.toString().getBytes());
// 讀取響應(yīng)數(shù)據(jù)
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024 * 1024];
int n = inputStream.read(buffer);
return new String(buffer, 0, n, "utf-8");
}
public String post(String url, String body) throws IOException {
StringBuilder request = new StringBuilder();
// 構(gòu)造??
request.append("POST " + url + " HTTP/1.1\n");
// 構(gòu)造 header
request.append("Host: " + ip + ":" + port + "\n");
request.append("Content-Length: " + body.getBytes().length + "\n");
request.append("Content-Type: text/plain\n");
// 構(gòu)造 空?
request.append("\n");
// 構(gòu)造 body
request.append(body);
// 發(fā)送數(shù)據(jù)
OutputStream outputStream = socket.getOutputStream();
outputStream.write(request.toString().getBytes());
// 讀取響應(yīng)數(shù)據(jù)
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024 * 1024];
int n = inputStream.read(buffer);
return new String(buffer, 0, n, "utf-8");
}
public static void main(String[] args) throws IOException {
HttpClient httpClient = new HttpClient("42.192.83.143", 8080);
String getResp = httpClient.get("/AjaxMockServer/info");
System.out.println(getResp);
String postResp = httpClient.post("/AjaxMockServer/info", "this is body");
System.out.println(postResp);
}
}
都看到這了,點(diǎn)個(gè)贊再走吧,謝謝謝謝謝
到了這里,關(guān)于網(wǎng)絡(luò)原理 - HTTP / HTTPS(4)——構(gòu)造http請(qǐng)求的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!