기본적으로 테스트 할 때 오류가 발생하는 uri를 기록하고 싶습니다. 디버거를 사용하여 실패한 uri를 찾을 수 있지만 검색 방법을 모르겠습니다. 아래의 인쇄 화면이 있습니다.DownloadStringCompletedEventArgs에서 오류가 발생했습니다.
http://img802.imageshack.us/img802/5465/progps.jpg
조언에 감사드립니다.
기본적으로 테스트 할 때 오류가 발생하는 uri를 기록하고 싶습니다. 디버거를 사용하여 실패한 uri를 찾을 수 있지만 검색 방법을 모르겠습니다. 아래의 인쇄 화면이 있습니다.DownloadStringCompletedEventArgs에서 오류가 발생했습니다.
http://img802.imageshack.us/img802/5465/progps.jpg
조언에 감사드립니다.
오히려 호 WebClient.DownloadStringAsync(Uri)
보다는 두번째 파라미터로 전달 Uri
과부하, DownloadString(Uri, Object)
전화. 그런 다음 이벤트 핸들러에서 e.UserToken
값을 Uri
으로 변환하여 값을 검색 할 수 있습니다. 즉,
Uri uri = new Uri("http://example.com");
WebClient client = new WebClient();
client.DownloadStringCompleted = StringDownloaded;
client.DownloadStringAsync(uri, uri);
void StringDownloaded(object sender, DownloadStringCompletedEventArgs e)
{
Uri uri = (Uri)e.UserToken;
...
}
이 기술을 사용하여 모든 종류의 상태를 이벤트 처리기에 전달할 수 있습니다.
(e.Error.Response as HttpWebResponse).ResponseUri
을하지만 리디렉션이있는 경우 요청 된 열린 우리당과 다를 수 ResponseUri되지 않습니다
이 작동 즉? –
Jim Mischel의 대답에 대한 Ash의 의견은 e.UserState (e.UserToken은 DownloadStringCompletedEventArgs 개체에 존재하지 않음)에서 이벤트 처리기 함수에서 DownloadStringAsync에 전달 된 UserToken이 액세스 할 수 있다는 것입니다.
Uri uri = new Uri("http://example.com");
WebClient client = new WebClient();
client.DownloadStringCompleted = StringDownloaded;
client.DownloadStringAsync(uri, uri);
void StringDownloaded(object sender, DownloadStringCompletedEventArgs e){
Uri uri = (Uri)e.UserState;
...
}
늦게 답장을 보내 주셔서 죄송합니다. Uri로 UserState 속성을 캐스팅하고 DownloadStringAsync를 오버로드하면 UserToken이 완벽하게 작동합니다 (UserToken을 볼 수 없음). 건배 – Ash