> 백엔드 개발 > Golang > Go에서 텍스트 파일의 HTTP 요청과 응답을 어떻게 구문 분석하나요?

Go에서 텍스트 파일의 HTTP 요청과 응답을 어떻게 구문 분석하나요?

Linda Hamilton
풀어 주다: 2024-12-14 16:55:12
원래의
977명이 탐색했습니다.

How to Parse HTTP Requests and Responses from a Text File in Go?

Go에서 HTTP 요청 및 텍스트 파일의 응답 구문 분석

소개
이 질문은 구문 분석에 중점을 둡니다. Connection 구조체의 Go 슬라이스에 대한 HTTP 요청 및 응답 스트림이 포함된 텍스트 파일입니다. 각 연결 구조에는 HTTP 요청과 응답이 포함됩니다.

문제 개요
HTTP 요청과 응답이 포함된 텍스트 파일이 주어지면 작업은 이를 []Connection 슬라이스로 구문 분석하는 것입니다. http.ReadRequest 함수를 사용하여 요청을 구문 분석할 수 있습니다. 그러나 응답을 구문 분석하는 내장 기능은 없습니다.

구현
해결 방법은 다음 단계로 구성됩니다.

  1. 버퍼 리더 생성:

    buf := bufio.NewReader(r)
    로그인 후 복사

    여기서 r은 텍스트 파일을 나타내는 io.Reader 인스턴스.

  2. 반복 구문 분석:

    for {
        req, err := http.ReadRequest(buf)
    로그인 후 복사

    a. http를 사용합니다. ReadRequest는 다음 요청을 구문 분석합니다. stream.

    b. EOF를 확인합니다(err == io.EOF). 도달하면 루프를 중단합니다.

    c. 오류가 발생하면 오류와 함께 구문 분석된 스트림을 반환합니다.

  3. 응답 구문 분석:

     resp, err := http.ReadResponse(buf, req)
    로그인 후 복사
    • 사용 http.ReadResponse는 요청과 관련된 응답을 구문 분석합니다.
  4. 응답 본문 처리:

     b := new(bytes.Buffer)
     io.Copy(b, resp.Body)
     resp.Body.Close()
     resp.Body = ioutil.NopCloser(b)
    로그인 후 복사
    • 저장 바이트 버퍼에 대한 응답 본문(b).
    • 원래 응답 본문을 닫습니다. (resp.Body).
    • resp.Body를 바이트 버퍼로 바꿉니다.
  5. 스트림 채우기:

    stream = append(stream, Connection{Request: req, Response: resp})
    로그인 후 복사
    • Connection 구조체를 생성하여 스트림에 추가 Slice.
  6. 루프 종료:

    if err == io.EOF {
        break
    }
    로그인 후 복사
    • http.ReadRequest가 반환될 때 루프를 종료합니다. EOF.
  7. 사용 예:

    f, err := os.Open("/tmp/test.http")
    stream, err := ReadHTTPFromFile(f)
    로그인 후 복사
    • 텍스트 파일을 열고 ReadHTTPFromFile에 전달합니다. function.

결론
이 방법은 텍스트 파일의 HTTP 요청 및 응답을 효과적으로 구문 분석하고 구문 분석된 데이터로 []연결 슬라이스를 채웁니다. . 응답 본문을 올바르게 처리하고 파이프라인 스트림에서 여러 요청과 응답의 올바른 구문 분석을 보장합니다.

위 내용은 Go에서 텍스트 파일의 HTTP 요청과 응답을 어떻게 구문 분석하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿