Fiddler 디버깅에 대한 ReadResponse() failed 문제

1810 단어 디버깅
오랫동안 블로그를 쓰지 않아서 다시 시작하고 계속 쌓고 싶어요.
최근 Fiddler를 사용하여 애플리케이션을 분석하는 동안 다음과 같은 오류가 발생했습니다.
[Fiddler] ReadResponse() failed: The server did not return a complete response for this request.
이 덩어리에 대해 특별히 익숙하지 않아서 당분간 실마리가 없을 것이다.이 오류 설명에 따르면 서버가 데이터를 보내지 않은 것으로 보인다.이 원인은 매우 많다. 일반적으로 서버는 응답 조작을 해서는 안 된다고 여긴다.인터넷에서 자료를 찾았는데 권한 설정이 정확하지 않다고 했지만 저는 이런 상황이 있어서는 안 됩니다. 저는 Fiddler를 걸 때만 서버와 통신할 수 없는 상황이 발생했습니다. 그러면 Fiddler의 문제라고 단정합니다.
Fiddler 설정을 잠시 찾았지만 해결할 수 없었습니다. 갑자기 앱이 보낸 가방을 보았습니다.
POST  HTTP/1.1
Content-Length: 38
Content-Type: application/x-www-form-urlencoded
Host: ( )
Connection: Keep-Alive
User-Agent: android-async-http/1.4.4 (http://loopj.com/android-async-http)
Accept-Encoding: gzip

( )

Header의 첫 줄에 주소가 없는 것을 발견했습니다. 이 응용 프로그램은 정말 이상하게 썼습니다. HTTP 규범에 부합되는지 모르겠습니다.FiddlerScript를 찾아 OnBeforeRequest 함수에 다음 코드를 추가하는 방법을 모색합니다.
        //  
        if (oSession.url == "http://( )")
        {
            oSession.url = "http://( )/";
        }

즐겁게 테스트를 하고 504 Fiddler와 관련된 오류와 400 BadRequest를 되돌려줍니다.Session::url 형식을 몰라서 문제가 생겼을 수도 있습니다.
먼저 주석을 달고, 그 다음에 방법을 바꾸어 AutoResponder에 Rule를 추가하여 방향을 바꾸어 문제를 해결했다.
 

후기


Fiddler Script의 예 문서에서 다음과 같은 사용법을 찾았습니다.
        if (oSession.url=="www.example.com/live.js") {
              oSession.url = "dev.example.com/workinprogress.js";
        }

원래는 "http://"를 넣을 필요가 없었는데...
RFC2616, 5.1.2 섹션을 조회하려면 다음과 같이 하십시오.
5.1.2 Request-URI Request-URI    = "*"| absoluteURI | abs_path | authority Note that the absolute path cannot be empty; if none is present in the original URI, it MUST be given as "/"(the server root).
이 설명에 따르면, 이 응용 프로그램이 보낸 요청은 규범에 부합되지 않는다.

좋은 웹페이지 즐겨찾기