나는 C#에서 TCP 수신기를 사용하고 있습니다. 패킷 캡처에 pcap.net을 사용하고 있습니다. 그러나 내가 tcp.Http.Decode(Encoding.UTF8)
같은 명령으로 http 메시지를 얻으려고 할 때, 나는 암호화 된 스크립트를 얻는다. 나는 SSL 보호를 사용하지 않는 사이트에서 듣고있다. 나는 tcp.Http.ToMemoryString()
을 시도한 다음 바이트로 UTF8로 디코딩했다. HTTP 헤더를 제대로 얻을 수는 있지만 읽을 수있는 형식으로 HTTP 메시지를 가져올 수 없다. 어떤 생각을 어떻게 할 수 있습니까?C#에서 TCP 패킷에서 Http 본문 메시지를 얻는 방법
답변
본문을 가져 오려면 HttpDatagram.Body
속성을 사용해야합니다.
이렇게하면 HTTP 패킷의 본문 부분이 반환됩니다.
단일 패킷을 구문 분석 중이므로 전체 HTTP 응답 본문을 포함하지 않을 수있는 해당 패킷의 데이터 만 가져옵니다.
나는 사이트의 모든 패킷을받습니다. 데이터에 약간의 데이터가 있어야합니다. 패킷에 있어야합니다. 압축되거나 인코딩 된 것처럼 보이니까 도와 드릴까요? –
첫 번째 패킷이 아닌 경우 먼저 TCP 재구성을 수행 한 다음 데이터를 구문 분석해야합니다. – brickner
정말 고마워. –
압축 할 수 있습니다. 전송 인코딩 헤더 – Joni
을 확인하십시오. gzip을 사용하여 압축을 풀어 보았지만 문제가 있습니다. 매직 번호 오류 수정 방법에 대해 알고 있습니까? –