在Go 中解析文字檔案中的HTTP 請求與回應
簡介
簡介本題重點在於解析一個文字文件,其中包含HTTP 請求流和對Connection 結構的Go 切片的回應。每個 Connection 結構體都包含一個 HTTP 請求和回應。
問題大綱給定一個包含 HTTP 請求和回應的文本文件,任務是將其解析為 []Connection 切片。 http.ReadRequest 函數可用來解析請求。但是,沒有內建函數來解析響應。
解決方案涉及以下步驟:
buf := bufio.NewReader(r)
緩衝讀取器建立:
其中r是表示文字檔的io.Reader 實例。
for { req, err := http.ReadRequest(buf)
迭代解析:
a. 使用http.ReadRequest 解析中的下一個請求流。
b. 檢查 EOF (err == io.EOF)。如果達到,則跳出循環。
如果發生錯誤,則傳回帶有錯誤的解析流。
resp, err := http.ReadResponse(buf, req)
b := new(bytes.Buffer) io.Copy(b, resp.Body) resp.Body.Close() resp.Body = ioutil.NopCloser(b)
stream = append(stream, Connection{Request: req, Response: resp})
if err == io.EOF { break }
f, err := os.Open("/tmp/test.http") stream, err := ReadHTTPFromFile(f)
以上是如何在 Go 中解析文字檔案中的 HTTP 請求和回應?的詳細內容。更多資訊請關注PHP中文網其他相關文章!