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

时间:2009-12-08 21:17:29

标签: asp.net linq httpwebrequest httpwebresponse linq-to-xml

我需要使用本地服务来使用生成的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 个答案:

答案 0 :(得分:2)

如果你想要一个同步请求,那么在我看来是的是。

但处理WebException是个好主意。 在WebException.Response.GetResponseStream()中,您应该有HTTP / HTML错误页面或soapfault。

Asynch请求
//启动异步检索响应流...
var result = request.BeginGetResponse(...)
//设置超时回调方法,BeginGetResponse不会超时...
ThreadPool.RegisterWaitForSingleObject(result.AsyncWaitHandle,...)

相关问题