有一个本地服务,我需要从中使用生成的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不会超时... ThreadPool.RegisterWaitForSingleObject(result.AsyncWaitHandle,...)

10-06 05:57