有一个本地服务从我需要消耗生成的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