2011-12-09 4 views
0

HttpWebRequest을 사용하여 파이썬으로 작성된 웹 서비스를 호출하고 해당 서비스가 XML 파일을 반환한다고 가정 해 보겠습니다. 데이터를 다운로드하는 데 10 초가 걸린다 고 가정합니다.HttpWebRequest를 사용하여 다운로드

HttpWebResponse response = (HttpWebResponse)req.GetResponse(); 

if(allDate100%Transfered) 
MsgBox.show("u can now CUT your cable. All data is there!!!"); 

모든 것이 전송되었는지 확인할 수있는 속성이 있습니까?

예를 들어 수신 된 데이터를 문자열로 읽으 려하지만 모든 데이터가 성공적으로 다운로드되었을 때만 수행하고 싶습니다.

Stream dataStream = response.GetResponseStream(); 
StreamReader reader = new StreamReader(dataStream); 
String xml = reader.ReadToEnd(); 

나는 어떤 메시지가 또는 모든 데이터가 거기에 정말 내가 더 이상 연결이 필요하지 않는 것이 나에게 알려주는 웹 서비스에서 서명합니까?

편집 : 문제는 거기에 있습니다. 나는 다른 대답을 얻고 그들 은 서로 모순된다.

+0

서식을 설정하고 영어로 시간을 보내십시오. 대문자 대신 ** 굵게 **를 사용하고 느낌표를 사용하지 마십시오. 코드가'response.GetResponseStream()'을 말하면 안 되는가? – jgauffin

답변

2

request.GetResponse()은 동기식입니다. 즉, 모든 데이터가 다운로드 될 때까지 반환되지 않습니다.

  • 중단 이전에 불렀다 : request.GetResponse()

    The documentation는 경우 WebException가 발생되는 것을 말한다.

  • 요청의 시간 종료 기간이 만료되었습니다.
  • 요청을 처리하는 동안 오류가 발생했습니다.

아무런 예외도 발생시키지 않으면 모든 것이 정상적으로 처리되었음을 의미합니다.

+0

http://stackoverflow.com/a/8391670/963546; 인용구 : GetResponse는 전체 응답 스트림을 반환하지 않습니다. ** 이제는 무엇이 사실입니까? ** – Gero

+0

문서의 아무 것도 다른 대답 상태가 참임을 나타냅니다. 그리고'GetResponseStream'이 호출되지 않으면 몸체가 서버에서 가져 오지 않을 것이라고 믿기가 힘듭니다. – jgauffin

+0

'stream dataStream = response.GetResponseStream();'을 호출하면 웹 서비스와 저 사이에 통신이 이루어 집니까? – Gero

관련 문제