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()));
4

1 回答 1

2

如果您想要一个同步请求,那么我认为是的。

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

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

于 2009-12-08T21:37:00.283 回答