Question

Il y a un service local dont j'ai besoin de consommer un XML généré aux flux de documents. Bien que le point final n'est pas un service REST en soi. Je voulais être sûr que la méthode que je l'ai indiqué ci-dessous est la façon la plus efficace d'obtenir la réponse retournée dans 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()));
Était-ce utile?

La solution

Si vous voulez une requête synchrone alors à mon avis, oui il est.
Mais ce serait une bonne idée de gérer WebException. Dans WebException.Response.GetResponseStream (), vous devez avoir soit une page d'erreur HTTP / HTML ou un SoapFault.

Demande Asynch
// commence la récupération asynch du flux de réponse ...
var result = request.BeginGetResponse (...)
// définir une méthode de rappel de délai d'attente, BeginGetResponse délai d'attente ...
Indifférent ThreadPool.RegisterWaitForSingleObject (result.AsyncWaitHandle, ...)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top