Pregunta

Hay un servicio local de la que tengo que consumir una XML generado flujo de documento. Aunque el punto final no es un servicio REST per se. Quería asegurarse de que el método que he descrito a continuación es la forma más eficaz de conseguir la respuesta devuelta en un 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()));
¿Fue útil?

Solución

Si desea una solicitud síncrona a continuación, en mi opinión sí lo es.
Sin embargo, sería una buena idea para manejar WebException. En WebException.Response.GetResponseStream () debe tener ya sea una página de error HTTP / HTML o un SOAPFault.

Asynch solicitud
// inicia la recuperación de la secuencia de respuesta asynch ...
var result = request.BeginGetResponse (...)
// establecer un método de devolución de llamada de tiempo de espera, tiempo de espera BeginGetResponse Indiferente ...
ThreadPool.RegisterWaitForSingleObject (result.AsyncWaitHandle, ...)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top