我需要使用本地服务来使用生成的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()));
答案 0 :(得分:2)
如果你想要一个同步请求,那么在我看来是的是。
但处理WebException是个好主意。
在WebException.Response.GetResponseStream()中,您应该有HTTP / HTML错误页面或soapfault。
Asynch请求
//启动异步检索响应流...
var result = request.BeginGetResponse(...)
//设置超时回调方法,BeginGetResponse不会超时...
ThreadPool.RegisterWaitForSingleObject(result.AsyncWaitHandle,...)