質問

私は、生成された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、...)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top