가능한 인증 문제? Silverlight 4에서 WebClient를 통해 JSON을로드합니다
-
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));
}
그리고 continueloadstamdata ()
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)}
무슨 일이 일어나고 있는지, 기본 인증이 구현되고 요청을받을 수있는 방법에 대한 아이디어가 있습니까?
건배
닉
해결책
기반 여기 마크 몬스터의 게시물 Beginget 방법에 일부 코드 라인이 없습니다. 그것은 다음과 같아야합니다.
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을 얻으려고하는 경우 OpenReadAsync 대신 DownloadStringAsync를 사용하여 물건을 단순화 할 수 있어야합니다.
제휴하지 않습니다 StackOverflow