مشكلة المصادقة المحتملة؟ تحميل JSON عبر WebClient في Silverlight 4
-
11-09-2019 - |
سؤال
ألعب مع Silverlight 4، وأنا عندما الأحمال صفحتي، أدعو
beginGet("my/people/", new OpenReadCompletedEventHandler(continueLoadStamData));
أنني قد حددت كما
private void beginGet(string endpoint, OpenReadCompletedEventHandler callback)
{
WebClient wc = new WebClient();
wc.Credentials = new NetworkCredential(username, password);
wc.OpenReadCompleted += callback;
wc.OpenReadAsync(new Uri(baseURL + endpoint));
}
و penalueloadstamdata ()
void continueLoadStamData(object sender, OpenReadCompletedEventArgs e)
{
JsonObject root = (JsonObject)JsonObject.Load(e.Result);
}
مشكلتي هي أنه عندما أصل إلى e.Result، فإنه يلقي استثناء. هذا هو نفس الاستثناء الذي أحصل عليه عندما حاولت استخدام WebRequest req = ...; req.Credentials = new NetworkCredential(username, password)
:
{System.Reflection.TargetInvocationException: An exception occurred during the operation, making the result invalid. Check InnerException for exception details. ---> System.Net.WebException: An exception occurred during a WebClient request. ---> System.NotImplementedException: This property is not implemented by this class.
at System.Net.WebRequest.set_Credentials(ICredentials value)
at System.Net.WebClient.GetWebRequest(Uri address)
at System.Net.WebClient.OpenReadAsync(Uri address, Object userToken)
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
at System.Net.OpenReadCompletedEventArgs.get_Result()
at JSONSample.MainPage.continueLoadStamData(Object sender, OpenReadCompletedEventArgs e)
at System.Net.WebClient.OnOpenReadCompleted(OpenReadCompletedEventArgs e)
at System.Net.WebClient.OpenReadOperationCompleted(Object arg)}
هل لديك أي فكرة عما يحدث، وكيف يمكنني التأكد من تنفيذ المصادقة الأساسية والحصول على طلبي؟
هتافات
نيك
المحلول
مرتكز على مارك مونستر آخر هنا أنت تفتقد بعض خطوط التعليمات البرمجية في طريقة البدء. يجب أن يكون شيء مثل:
private void beginGet(string endpoint, OpenReadCompletedEventHandler callback)
{
WebRequest.RegisterPrefix("http://", System.Net.Browser.WebRequestCreator.ClientHttp);
WebClient wc = new WebClient();
wc.Credentials = new NetworkCredential(username, password);
wc.UseDefaultCredentials = false;
wc.OpenReadCompleted += callback;
wc.OpenReadAsync(new Uri(baseURL + endpoint));
}
أيضا، إذا كنت تحاول فقط الحصول على JSON من الخادم، يجب أن تكون قادرا على استخدام DownloadStringAsync بدلا من OpenReadasyNC والتي قد تبسط الأشياء.
لا تنتمي إلى StackOverflow