高效检索HttpWebResponse并将其放入XDocument的方法

3

我需要从一个本地服务中消费生成的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()));
1个回答

2
如果你需要同步请求,我认为是可以的。
但最好处理WebException异常。在WebException.Response.GetResponseStream()中,你可能会得到HTTP/HTML错误页面或soapfault。
异步请求: // 开始异步检索响应流... var result = request.BeginGetResponse(...) // 设置回调方法的超时,BeginGetResponse不会超时... ThreadPool.RegisterWaitForSingleObject(result.AsyncWaitHandle, ...)

处理 WebException 的想法不错。话说,对于异步请求,你建议的修改会是什么? - ahsteele

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接