Я разрабатываю приложение asp.Net mvc. В моем приложении мне нужно получить объект json с удаленного сервера. Я использую для этого веб-клиент. Но это дает мне ошибку. Мой сценарий ниже.Невозможно получить данные Json с привязки удаленного сервера к объекту в asp.net mvc
У меня есть этот URL
http://graph.facebook.com/{fb_id}/picture?width=200&height=200&redirect=false
Когда я получить доступ из браузера, то вернуть что-то вроде этого
Так что я пытаюсь получить эти данные в виде JSON, а затем сериализации их обратно , Поэтому я строю два класса, как показано ниже, чтобы связать эти данные.
public class FacebookAvatarResponse
{
[JsonProperty("data")]
public FacebookAvatarData Data { get; set; }
}
public class FacebookAvatarData
{
[JsonProperty("height")]
public int Height { get; set; }
[JsonProperty("width")]
public int Width { get; set; }
[JsonProperty("is_silhouette")]
public bool IsSilhouette { get; set; }
[JsonProperty("url")]
public string Url { get; set; }
}
В CONTROLL, я построил метод действия
[AllowAnonymous]
public JsonResult Test(string avatarDataUrl)
{
using (WebClient webClient = new WebClient())
{
string data = webClient.DownloadString(avatarDataUrl);
return Json(JsonConvert.DeserializeObject<FacebookAvatarResponse>(data),JsonRequestBehavior.AllowGet);
}
}
Как вы можете видеть, я получаю, что данные в формате JSON, а затем возвращают в качестве результата действия. Но когда я запрашиваю, чтобы метод действия передавал правильный URL-адрес в качестве параметра, он дает мне эту ошибку.
Как я могу получить JSON данные с удаленного сервера привязки к конкретным классам?
если вы удалите 'avatarDataUrl' и заменить' webClient.DownloadString ("http://graph.facebook.com/{fb_id}/picture?width=200&height=200&redirect=false"); 'это делает Работа? –
Я. Это работает. Это загрузка изображения напрямую. Вместо этого он не возвращает Json, как в браузере. Зачем? –
Так работает ожидаемый или вы пытались вернуть JSON? –