Windows Phone 앱을 만들고 있는데 URL에서 JSON 데이터를 가져 오려고합니다. 사용자는 JSON 데이터를 가져 오기 위해 JSON 데이터를 호스팅하는 웹 사이트에 로그인해야하며 브라우저에서 데이터를 표시하고 브라우저에서 인식하지 못하기 때문에 웹 브라우저 컨트롤을 사용할 수 없습니다. 이상한 이유), Store에서 JSON 파일 유형을 처리 할 수있는 앱을 검색하도록 요청합니다. (Windows PC에서 데스크탑 브라우저의 URL을 열면 원시 JSON 데이터를 볼 수 있습니다.) 일반 HTTPWebRequest 또는 WebClient를 사용하여 로그인 쿠키를 설정해야하는 JSON 데이터를 가져올 수 없습니다 (JSON 데이터는 사용자별로 다름). 웹 브라우저 컨트롤에서 쿠키를 추출하여 WebClient 또는 HTTPWebRequest와 함께 사용할 수 없습니다. 그래서 내가 할 수있는 가장 좋은 일은 WebBrowser에 의해 내부적으로 사용되는 IWebRequestCreate의 특별한 내부 인스턴스를 사용하는 것입니다. 해당 클래스로 백그라운드 HTTP 요청을 열면 쿠키가 WebBrowser 컨트롤에 의해 작성/전송 된 것처럼 자동으로 설정됩니다. 하지만 내 코드는 JSON 데이터를 반환하지 않습니다. 문자열 resp이 비어 있으므로 빈 응답이 표시됩니다.빈 응답 HTTPWebRequest : Windows Phone 8
Dim browser = New WebBrowser()
Dim brwhttp = GetType(WebRequestCreator).GetProperty("BrowserHttp")
Dim requestFactory = TryCast(brwhttp.GetValue(Browser, Nothing), IWebRequestCreate)
Dim uri = New Uri("http://api.quora.com/api/logged_in_user?fields=inbox,notifs,following,followers")
Dim req = requestFactory.Create(uri)
req.Method = "GET"
req.BeginGetResponse(New AsyncCallback(AddressOf request_Callback), req)
Private Sub request_Callback(asyncResult As IAsyncResult)
Dim webRequest As HttpWebRequest = DirectCast(asyncResult.AsyncState, HttpWebRequest)
Dim webResponse As HttpWebResponse = DirectCast(webRequest.EndGetResponse(asyncResult), HttpWebResponse)
Dim tempStream As New MemoryStream()
webResponse.GetResponseStream().CopyTo(tempStream)
Dim sr As New StreamReader(tempStream)
Dim resp As String = sr.ReadToEnd
End Sub
문제점은 무엇입니까 : 아래
코드인가?