HttpWebResponseのを取得し、XDocumentに入れるの効率的な方法
-
18-09-2019 - |
質問
私は、生成されたXML文書のストリームを消費する必要があり、そこからローカルサービスがあります。エンドポイントは、RESTサービス自体ではありませんが。私は以下の通りまし方法はXDocument
に返された応答を得るための最も効率的な方法であることを確認したかった。
Uri requestUri = null;
Uri.TryCreate(String.Format(SearchAddress, filter),
UriKind.Absolute, out requestUri);
NetworkCredential nc =
new NetworkCredential("Login", "Password");
CredentialCache cCache = new CredentialCache();
cCache.Add(requestUri, "Basic", nc);
HttpWebRequest request =
(HttpWebRequest)HttpWebRequest.Create(requestUri);
request.Credentials = cCache;
request.PreAuthenticate = true;
request.Method = WebRequestMethods.Http.Get;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
XDocument xDoc =
XDocument.Load(new StreamReader(response.GetResponseStream()));
解決
あなたは私の意見では、同期要求をしたい場合は、
はい、それはです。
しかし、WebExceptionを処理するために良いでしょう。
WebException.Response.GetResponseStream()では、HTTP / HTMLエラーページまたはにSoapFaultのいずれかを持っている必要があります。
非同期要求
//は
...応答ストリームの非同期検索を開始します
VaRの結果= request.BeginGetResponse(...)
//タイムアウトコールバックメソッドを設定し、BeginGetResponse doesn'tタイムアウト...
ThreadPool.RegisterWaitForSingleObject(result.AsyncWaitHandle、...)
所属していません StackOverflow