سؤال

هناك خدمة محلية أحتاج منها لاستهلاك دفق مستند XML تم إنشاؤه. على الرغم من أن نقطة النهاية ليست خدمة راحة في حد ذاتها. أردت أن أكون متأكدا من الطريقة التي حددتها أدناه هي الطريقة الأكثر فعالية للحصول على استجابة عاد إلى 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()));
هل كانت مفيدة؟

المحلول

إذا كنت تريد طلب متزامن إذن في رأيي نعم هو.

ولكن سيكون من الجيد التعامل مع WebException. في WebException.Response.getResponseStream () يجب أن يكون لديك إما صفحة خطأ HTTP / HTML أو Soapfault.

طلب asynch
// يبدأ استرجاع asynch من دفق الاستجابة ...
var نتيجة = request.begingetresponse (...)
// إعداد طريقة رد المهلة، begingetresponse لا مهلة ...
threadpool.registerwaitforsingleObject (نتيجة .asyncwaithandle، ...)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top