HttpWebRequest/HttpWebResponse 개체를 통해 웹 사이트에 요청하고 있습니다.HttpWebResponse.GetResponse() fiddler가 "응답 헤더 구문 분석에 실패했습니다"라고 말합니다.
웹 사이트를 여러 번 성공적으로 호출하면 동일한 동적 페이지에 대한 호출이 모두 실패합니다. 디버거에서
나는 "내부 서버 오류 500"을 받고 있어요 피들러는 500 응답을 보여줍니다 포함 : 나는 모든 진수를 제거하고 페이지를 열어 본
[Fiddler] Response Header parsing failed.
This can be caused by an illegal HTTP response earlier on this reused server socket-- for instance, a HTTP/304 response which illegally contains a body.
Response Data:
<plaintext>
0D 0A 3C 21 44 4F 43 54 59 50 45 20 48 54 4D 4C 20 50 55 42 4C 49 43 20 ..<!DOCTYPE HTML PUBLIC
22 2D 2F 2F 57 33 43 2F 2F 44 54 44 20 48 54 4D 4C 20 34 2E 30 20 54 72 "-//W3C//DTD HTML 4.0 Tr
61 6E 73 69 74 69 6F 6E 61 6C 2F 2F 45 4E 22 3E 0D 0A 3C 48 54 4D 4C 3E ansitional//EN">..<HTML>
0D 0A 09 3C 48 45 41 44 3E 0D 0A 09 09 3C 74 69 74 6C 65 3E 56 69 65 77 ...<HEAD>....<title>View
내가 기대하는 것입니다 어떤 이유로 서버가 500을보고하고 HttpWebRequest 객체가이 예외를 throw합니다.
나는이 문제에 대해 다른 모든 "수정 사항"을 시도했지만 작동하지 않습니다. 그것은 단지 서버로부터 보내지는 잘못된 데이터일지도 모르지만, 피타가 아닌 HttpWebRequest보다 낮은 레벨의 객체를 사용할 것인가?
편집 : 위 예제에서 전체 16 진수/전체 HTML 블록을 포함하지 않았습니다.
편집 : 피들러 끄기 내가 디버거에서이 얻을
편집 : 그래서, 내가 본 것을에서 HttpWebResponse 클래스 객체가 그에 따라 행동한다. 서버가 비정상적이며 때로는 다른 http 상태 코드로 동일한 정확한 데이터를 반환합니다. 빠른 수정을 위해 방금 try/catch에서 각 호출을 래핑하고 catch 블록에서 정확히 동일한 호출을 다시 시도합니다. 지금까지는 HttpWebResponse 객체가 아니라 사이트 오류라고 반증합니다.
The server committed a protocol violation. Section=ResponseStatusLine
당신이 공격하려는 웹 사이트를 제어 할 수 있습니까? –
@ M.Babcock 아닙니다. 지금까지 500 응답에서 html을 제거하고 구문 분석 할 수있는 것처럼 보였지만 악취가 난다. – user1231231412
@Amadan winforms 앱입니다. – user1231231412