public class UserApiModel
{
[JsonProperty("user_id")]
public int UserId { get; set; }
[JsonProperty("user_name")]
public string UserName { get; set; }
// 他に必要なプロパティがあれば追加
}
public class ErrorResponseModel
{
public string ErrorMessage { get; set; }
// 他に必要なエラープロパティがあれば追加
public override string ToString()
{
return $"ErrorMessage: {ErrorMessage}";
}
}
static async Task Main()
{
// HttpClientのインスタンスを作成
using (HttpClient client = new HttpClient())
{
// Web APIのエンドポイントを指定
string apiUrl = "https://api.example.com/user";
try
{
// GETリクエストを送信し、応答を取得
HttpResponseMessage response = await client.GetAsync(apiUrl);
// リクエストが成功したか確認
if (response.IsSuccessStatusCode)
{
// 応答コンテンツを文字列として読み取る
string responseData = await response.Content.ReadAsStringAsync();
// JSON応答をUserApiModelにデシリアライズ
UserApiModel userApiModel = JsonConvert.DeserializeObject<UserApiModel>(responseData);
// デシリアライズされたデータを使用
Console.WriteLine($"UserID: {userApiModel.UserId}");
Console.WriteLine($"UserName: {userApiModel.UserName}");
// 他のプロパティも必要に応じて表示または使用
// ここでuserApiModelを使って何かを行う
}
else if (response.StatusCode == HttpStatusCode.BadRequest)
{
// エラーメッセージを取得
string errorResponseData = await response.Content.ReadAsStringAsync();
// エラーレスポンスをデシリアライズしてエラーメッセージを取得
ErrorResponseModel errorResponse = JsonConvert.DeserializeObject<ErrorResponseModel>(errorResponseData);
// エラーメッセージを表示
Console.WriteLine($"Error: {response.StatusCode} - {response.ReasonPhrase}");
Console.WriteLine($"Error Message: {errorResponse.ErrorMessage}");
}
else
{
// その他のエラーハンドリング
Console.WriteLine($"Error: {response.StatusCode} - {response.ReasonPhrase}");
}
}
catch (Exception ex)
{
// 通信エラーなどの例外ハンドリング
Console.WriteLine($"Exception: {ex.Message}");
}
}
}
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme