LoginSignup
0
1

More than 1 year has passed since last update.

【備忘録 C#】HTTP経由を使用す場合

Last updated at Posted at 2021-10-28

背景

Web上からJsonデータを取得してあれこれしたいと思い、HttpClientを使った際の学んだことを記録。

環境

・Visual studio 2019
・.NET Framwork 4.8

内容

WebからJsonデータを取得すにはHTTP経由で取得する。
HTTPを使用する場合、誰が(client)を記載する必要がある。
特定の人が決まっていなくても、枠だけでも用意する必要がある。

▼ユーザー認証がいらない場合

Webでアクセスした際に、ユーザーとパスワードを聞かれない場合この方式で大丈夫。

using System.Net.Http

HttpClient client = new HttpClient();//枠だけのclient
var request = new HttpRequestMessage(HttpMethod.Get, url);//注文書(リクエスト文)の作成
var result = client.SendAsync(request)//”誰が”(client)が”注文書”(リクエスト文)をもとにHTTPからとってくる。

▼ユーザー認証が必要な場合

Webでアクセスした際に、ユーザーとパスワードを聞かれる場合はclientにIDとPasswordを持たせる必要がある。

using System.Net.Http
using System.Net

//ユーザー認証の処理
var clientInfo = new HttpClientHandler();
clientInfo.Credentials = new NetworkCredential(LoginID, Password);
HttpClient client = new HttpClient(clientInfo);

//下記一緒
var request = new HttpRequestMessage(HttpMethod.Get, url);//注文書(リクエスト文)の作成
var result = client.SendAsync(request)//”誰が”(client)が”注文書”(リクエスト文)をもとにHTTPからとってくる。

▼認証をスキップする

証明書エラーなどで認証をスキップしたいときにこちらを追記すると良い。

using System.Net.Http
using System.Net

//証明書エラー認証スキップ
var httpClientHandler = new HttpClientHandler();
httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, sslPlicyErrors) => true;

//ユーザー認証の処理
var clientInfo = new HttpClientHandler();
clientInfo.Credentials = new NetworkCredential(LoginID, Password);
HttpClient client = new HttpClient(clientInfo);

//下記一緒
var request = new HttpRequestMessage(HttpMethod.Get, url);//注文書(リクエスト文)の作成
var result = client.SendAsync(request)//”誰が”(client)が”注文書”(リクエスト文)をもとにHTTPからとってくる。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1