私はAsp.Net mvcアプリケーションを開発しています。私のアプリケーションでは、リモートサーバーからjsonオブジェクトを取得する必要があります。私はそれのためのWebクライアントを使用しています。しかし、それは私にエラーを与えている。私のシナリオは以下の通りです。私は、ブラウザからアクセスすると、それはだから私はJSONとしてそのデータを取得し、戻ってそれらをシリアライズしようとしています。このasp.net mvcのオブジェクトへのリモートサーバーバインディングからJsonデータを取得できません
のようなものを返す
http://graph.facebook.com/{fb_id}/picture?width=200&height=200&redirect=false
私はこのURLを持っています。だから私はそのデータをバインドするために、以下のような2つのクラスを構築します。 controllで
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; }
}
あなたはJSONとして、私はそのデータを取得しています参照し、操作結果として返すことができるように、私はアクションメソッド
[AllowAnonymous]
public JsonResult Test(string avatarDataUrl)
{
using (WebClient webClient = new WebClient())
{
string data = webClient.DownloadString(avatarDataUrl);
return Json(JsonConvert.DeserializeObject<FacebookAvatarResponse>(data),JsonRequestBehavior.AllowGet);
}
}
を構築しました。しかし、正しいURLをパラメータとして渡すアクションメソッドを要求すると、このエラーが表示されます。
どのように私は、特定のクラスに結合するリモートサーバからJSONデータを取得することができますか?
あなたは 'avatarDataUrl'を削除し、' webClient.DownloadString( "http://graph.facebook.com/{fb_id}/picture?width=200&height=200&redirect=false")に置き換えた場合、 'それをしません作業? –
それは働いている。イメージを直接ダウンロードしています。私はブラウザでアクセスするのではなく、Jsonを返すわけではありません。どうして? –
これは期待どおりの仕事か、JSONを返そうとしていますか? –