今回の記事はC#を用いてhttp通信を行う方法に関しての記事です。http通信に関しても触れているので初心者の方にも分かりやすいようになっていると思います。Post通信・Get通信の二つを解説していますので是非参考にしてください。
ではメインの記事に進みます。
C#で行うhttp通信とは?
http通信とは簡単に言うと通信方法です。主にWebページを見る際に使用されている通信方法になります。もう少し詳細に言うとWebページとなるhtmlが保存されているWebサーバに自身のPCからアクセスする際に使用する通信規格になります。
その通信方法にはざっくり分けるとGet(データをもらう)通信とPost(データを送る)通信の二つがあります。
細かいことは毎回頼りにしているこちらの記事を参考にしてみてください。
今回の記事はそのGet通信とPost通信に関してC#を用いて行う方法を記述しています。
ちなみに私はMacでVisualStudioの無償版で検証を行いました。最も業務上は、Windowsを使ったのでどちらでも一応試したことになると思います。
環境構築はどたらも簡単でインストーラーからインストールするのみです。会社で契約している有償版はおそらく社内の共有フォルダにでもインストーラーとキーがあるとおもうので先輩に聞くことをお勧めします。
インストールの参考記事は無限にあるので今回は割愛します。
C#でhttp通信(Get通信)
先ほど述べたデータをもらう方の通信です。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Http;
namespace test
{
class Program
{
// HttpClientのインスタンス
private static HttpClient client = new HttpClient();
static async Task Main(string[] args)
{
// HTMLを非同期で取得します。
var url = "https://ja.wikipedia.org/wiki/メインページ";
var response = client.GetAsync(url);
var content = await response.Result.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}
}
こちらでGoogleの検索ペーシのhtmlを取得するようなGet通信を実装できます。ようはこのget通信をして私たちはgoogleの検索ページをブラウザで表示できていると言う仕組みです。
ちなみにブラウザでの検索は基本的にGet通信です。
では次にPost通信についてみていきます。
C#でhttp通信(Post通信)
先ほど述べたデータを送る方の通信です。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Http;
namespace HttpTest0414
{
class Program
{
static async Task Main(string[] args)
{
var parameters = new Dictionary<string, string>()
{
{ "<何かパラメータなど>","<パラメータの値>" },
{ "<何かパラメータなど>","<パラメータの値>" },
};
var content = new FormUrlEncodedContent(parameters);
var response = await client.PostAsync($"<Post通信先のURL>", content);
var html_doc = await response.Content.ReadAsStringAsync();
}
}
}
Post通信は受け手側で何を必要としているかを知る必要もあるので、何か試したいページなどがあればそちらのページのURLで試してみてください。
私の下記の記事でPost通信を利用して、スクレイピングを行う方法に関しての記事を記載しています。
「【C#】Anglesharpとhttp通信を用いてスクレイピングを行う方法」
では今回の記事は以上です。他にもC#関連の記事をいくつか記載しているので気になる方は是非参考にしてみてください。
コメント
[…] 「C#でhttp通信を行う方法。〜 Get/Post通信 〜」 […]
[…] 「【C#】C#でhttp通信を行う方法。〜 Post通信・Get通信 〜」 […]
[…] 「【C#】C#でhttp通信を行う方法。〜 Post通信・Get通信 〜」 […]