Frage

Es gibt einen lokalen Dienst, von dem ich brauche einen generierte XML-Dokument-Stream zu konsumieren. Obwohl der Endpunkt nicht ein REST-Service per se. Ich wollte sicher sein, dass die Methode, die ich unten beschrieben habe, ist der effizienteste Weg, um die Reaktion des Erhaltens in eine XDocument zurückgegeben.

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()));
War es hilfreich?

Lösung

Wenn Sie eine synchrone Anforderung dann meiner Meinung nach wollen ja es ist.
Aber es wäre eine gute Idee sein WebException zu handhaben. In WebException.Response.GetResponseStream () sollen Sie entweder eine HTTP / HTML-Fehlerseite oder eine SoapFault.

Asynch Anfrage
// beginnt asynch Abrufen von Antwortstream ...
var result = request.BeginGetResponse (...)
// eine Timeout-Callback-Methode Einstellung BeginGetResponse Paßt nicht Timeout ...
ThreadPool.RegisterWaitForSingleObject (result.AsyncWaitHandle, ...)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top