Pergunta

Existe um serviço local a partir do qual eu preciso consumir uma XML sequências de documentos gerados. Embora o ponto final não é um serviço REST per se. Eu queria ter certeza que o método que eu já descritas abaixo é a forma mais eficiente de obter a resposta retornada em uma 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()));
Foi útil?

Solução

Se você quer uma solicitação síncrona, em seguida, em meus sim de opinião que é.
Mas seria uma boa idéia para WebException alça. Em WebException.Response.GetResponseStream () Você deve ter tanto um HTTP / HTML página de erro ou um SoapFault.

pedido Asynch
// inicia recuperação asynch de fluxo de resposta ...
var request.BeginGetResponse (...)
resultado = // definir um método de tempo limite de retorno de chamada, BeginGetResponse Indiferente tempo limite ...
ThreadPool.RegisterWaitForSingleObject (result.AsyncWaitHandle, ...)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top