[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]] -[[戻る>ASP.NET]] * 目次 [#sf757713] #contents *概要 [#e1a30627] .NETクライアントからHTTPリクエストを送る場合、 従来は、 -[[WebClientクラス>#c6b27e18]]や -[[WebRequest, WebResponseクラス>#t3ae0017]]を 使用していたが、こちらは設計が古いもよう。 新しくは、.NET Framework 4.5 では BCL 入りした~ System.Net.Http.dllの[[HttpClientクラス>#n074732e]]を使用する。 なお、JavaScriptからは、[[jQuery.ajax()>#m5888cea]]を使用する。 *HttpClientクラス [#n074732e] .NET Framework 4.5 で BCL 入りした、高機能で使い勝手がいいAPI。 **サンプル [#u8db561a] 以下のスニペットを使用すれば色々なパターンを処理可能。 // HttpClient HttpClient httpClient = new HttpClient(); // HttpRequestMessage (Method & RequestUri) HttpRequestMessage httpRequestMessage = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri("http://・・・"), }; // HttpRequestMessage (Headers & Content) httpRequestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); httpRequestMessage.Content = new FormUrlEncodedContent( new Dictionary<string, string> { { "client_id", "hogehoge" }, { "client_secret", "hogehoge" }, }); // HttpResponseMessage HttpResponseMessage httpResponseMessage = await httpClient.SendAsync(httpRequestMessage); string response = await httpResponseMessage.Content.ReadAsStringAsync(); **参考 [#a1eb1525] -HttpClient クラス (System.Net.Http)~ https://msdn.microsoft.com/ja-jp/library/system.net.http.httpclient.aspx -.NET TIPS:HttpClientクラスでWebページを取得するには?[C#、VB] - @IT~ http://www.atmarkit.co.jp/ait/articles/1501/06/news086.html -Web API よりも HttpClient に注目したい - しばやん雑記~ http://blog.shibayan.jp/entry/20120822/1345563275 -開発者を苦しめる.NETのHttpClientのバグと紛らわしいドキュメント~ https://www.infoq.com/jp/news/2016/09/HttpClient *WebClientクラス [#c6b27e18] .NETでHTTPリクエストを処理するための最古のAPI。 **参考 [#hd232f9a] -WebClient クラス (System.Net)~ https://msdn.microsoft.com/ja-jp/library/system.net.webclient.aspx -DOBON.NET > .NET Tips: C#, VB.NET --ファイルをダウンロードし保存する~ http://dobon.net/vb/dotnet/internet/downloadfile.html --ファイルをダウンロードし表示する~ http://dobon.net/vb/dotnet/internet/webclientopenread.html -.NET TIPS:WebClientクラスでWebページを取得するには? - @IT~ http://www.atmarkit.co.jp/ait/articles/0505/20/news138.html *WebRequest, WebResponseクラス [#t3ae0017] SilverlightがSOAPサーバーと通信するケースが増えたため、追加されたAPI。 -WebClientとの違いは、 --WebRequest, WebResponseの2クラスに分割され、非同期対応がなされた。 --WebResponseを使用してRequestを送信し、CallbackでWebResponseを取得する。 -各クラスには以下の派生クラスがある。 --HttpWebRequest、FileWebRequest、FtpWebRequest --HttpWebResponse、FileWebResponse、FtpWebResponse **参考 [#nccc74b8] -MSDN --WebRequest クラス (System.Net)~ https://msdn.microsoft.com/ja-jp/library/system.net.webrequest.aspx --WebResponse クラス (System.Net)~ https://msdn.microsoft.com/ja-jp/library/system.net.webresponse.aspx -DOBON.NET > .NET Tips: C#, VB.NET >~ WebRequest、WebResponseクラスを使ってファイルをダウンロードし表示する~ http://dobon.net/vb/dotnet/internet/webrequest.html -.NET TIPS:WebRequest/WebResponseクラスでWebページを取得するには? - @IT~ http://www.atmarkit.co.jp/ait/articles/0506/10/news122.html *jQuery.ajax() [#m5888cea] HTTPリクエストを使用してデータを取得するajax の最も低レベルな実装。 以下の様なメソッドも存在する。 -jQuery.get() -jQuery.post() **参考 [#id231190] -jQuery API Documentation --jQuery.ajax()~ http://api.jquery.com/jquery.ajax/ --jQuery.get()~ http://api.jquery.com/jQuery.get/ --jQuery.post()~ http://api.jquery.com/jQuery.post/ -jQuery 日本語リファレンス --jQuery.ajax(options) - jQuery 日本語リファレンス~ http://semooh.jp/jquery/api/ajax/jQuery.ajax/options/ --jQuery.get( url, data, callback ) - jQuery 日本語リファレンス~ http://semooh.jp/jquery/api/ajax/jQuery.get/+url%2C+data%2C+callback+/ --jQuery.post( url, data, callback, type ) - ~ http://semooh.jp/jquery/api/ajax/jQuery.post/+url%2C+data%2+callback%2C+type+/ *参考 [#j377dfef] -ASP.NET Web API シンプルな文字列の POST について - miso_soup3 Blog~ http://miso-soup3.hateblo.jp/entry/2014/06/02/000603 ---- Tags: [[:ASP.NET]]