【C#】HTTPリクエスト→JSONレスポンス

C#でWebAPIを叩いて,その結果をjson形式で取得しようと思ったひとは少なからずいるんじゃないだろうか?特に今はAndroidアプリもC#でかけるような時代だから.

でことで今回の記事は,そんなC#でGETなりPOSTなりでhttpリクエストを送り,その結果をjsonで受け取ってみようってお話です.

jsonモデルを用意する

Newtonsoft.Json

今回,jsonを扱うためのモジュールとしてNewtonsoftというものを使用します.ということで,NuGetで入れましょう.

jsonモデルを定義する

次に,使用するjsonのモデルを用意しましょう.ひとまず下のようなモデルをソースに起こすことにします.

これを,jsonmodel.csというファイル(名前はなんでもいい)に起こすとこんな感じです.

とまぁこんな感じでしょう.メンバをJsonPropertyで実際のキーに対応させるような感じです.

リクエストを送る

リクエストを送るには,System.Net.Httpを使用します.これはGETもPOSTも同様です.

GETリクエスト

HttpClient内で定義されているGetAsyncメソッドを使用することでGETリクエストをサーバに投げることができます.

POSTリクエスト

GETの時の感じで,HttpClient内で定義されているPostAsyncメソッドを使用することでPOSTリクエストをサーバに投げることができます.POSTする内容も一緒に指定する必要があります.

もしjsonをPOSTしたいなら,こんな感じでやればいいです.

レスポンスを受け取る

レスポンスの受け取り方はGETでもPOSTでも同じです.

ちなみに,responce.StatusCodeにステータスコードが入ってるので,これがSystem.Net.HttpStatusCode.OKの時だけレスポンスの読み取りをやった方がいいかもしれません.

jsonに変換する

最後に,受け取ったやつをjson形式にデシリアイズします.一瞬です.

さっき作成したpersonってモデルに変換してるわけだけども,キーの不一致があったりとかすると落ちます.あと,APIによっては配列形式で返してたりとかもあります.配列形式で返ってきてたらこうします.

とまぁこんな感じですかねぇ.

-2019年07月18日追記-

Newtonsoft.jsonの使い方を軽くまとめてみたので、良かったら読んでみてください「C#でjsonを扱う

あわせて読みたい

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です