2017-05-22 17 views
0

나는 C#에서 TCP 수신기를 사용하고 있습니다. 패킷 캡처에 pcap.net을 사용하고 있습니다. 그러나 내가 tcp.Http.Decode(Encoding.UTF8) 같은 명령으로 http 메시지를 얻으려고 할 때, 나는 암호화 된 스크립트를 얻는다. 나는 SSL 보호를 사용하지 않는 사이트에서 듣고있다. 나는 tcp.Http.ToMemoryString()을 시도한 다음 바이트로 UTF8로 디코딩했다. HTTP 헤더를 제대로 얻을 수는 있지만 읽을 수있는 형식으로 HTTP 메시지를 가져올 수 없다. 어떤 생각을 어떻게 할 수 있습니까?C#에서 TCP 패킷에서 Http 본문 메시지를 얻는 방법

+0

압축 할 수 있습니다. 전송 인코딩 헤더 – Joni

+0

을 확인하십시오. gzip을 사용하여 압축을 풀어 보았지만 문제가 있습니다. 매직 번호 오류 수정 방법에 대해 알고 있습니까? –

답변

1

본문을 가져 오려면 HttpDatagram.Body 속성을 사용해야합니다.

이렇게하면 HTTP 패킷의 본문 부분이 반환됩니다.

단일 패킷을 구문 분석 중이므로 전체 HTTP 응답 본문을 포함하지 않을 수있는 해당 패킷의 데이터 만 가져옵니다.

+0

나는 사이트의 모든 패킷을받습니다. 데이터에 약간의 데이터가 있어야합니다. 패킷에 있어야합니다. 압축되거나 인코딩 된 것처럼 보이니까 도와 드릴까요? –

+0

첫 번째 패킷이 아닌 경우 먼저 TCP 재구성을 수행 한 다음 데이터를 구문 분석해야합니다. – brickner

+0

정말 고마워. –