1 / クリップ これは、Curlというか、コンソール(コマンドプロンプト等)の問題なんですけど、 レスポンス内容が日本語で文字化けしている事が多々あります。そういう場合は、以下の手順で対応できます。 2 / クリップ ・編集 2018/02/04 01:31, chrome、IEなどの普通のWebブラウザで閲覧するときちんと表示されているWebサイトですが、linuxからcurlコマンドで取得すると文字化けしてしまいます。, 本来ならURLを張り付けたいのですが、身内のスポーツサークルのWebサイトなため、貼り付けられません。, これをcurlでもきちんとした文字で取得したいのですが、方法はありませんでしょうか? 「GETばかりしているけれど本当はPOSTしたいんだよね…2」, こちらは、HTTPリクエストをすると、いろいろなレスポンスを返してくれるWebサイトです。リクエストの書き方が正しいか、きちんとHTTP通信を行えるものなのかをさらりと確認できます!, また、URLを少し変えるだけで、GETやPOSTをそれぞれ行えたり、終了コードを恣意的に400や500にしたりすることもできます。curlに限らず、HTTP/HTTPS通信するコードだけぬるっと試してみたい時におすすめのWebサービスです。, さて、今まではシンプル・オーソドックス・ビューティフルかつピュアなcurlコマンドで遊んできましたが、実はcurlの後ろにはオプションを設定することができます!, これによってGETやPOSTを使い分けたり、ヘッダーやボディー、レスポンスを詳細に設定したり、エラーメッセージを表示させなかったりと、様々な詳細設定が可能となるのです。, Googleの例のように、何もオプションをつけないとGETメソッドとなりますが、明示的にリクエストメソッドを指定したい場合は-X {リクエストメソッド} “URL”で変更することができます。, -H “{パラメータ}”: “{値}” をつけることで、HTTPヘッダを追加することができます。 送信データに日本語が含まれる場合は事前 … 【 WordPress】年別アンカーリンク、年別見出しと個別記事の一覧表示の両立(ループ処理の複数表... 回答 3 / クリップ $ curl --version curl 7.64.1 (x86_64-apple-darwin19.0) libcurl/7.64.1 (SecureTransport) LibreSSL/2.8.3 zlib/1.2.11 nghttp2/1.39.2 Release-Date: 2019-03-27 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: AsynchDNS GSS-API HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL UnixSockets こんにちは!お久しぶりです。 (ここからはPOSTメソッドで試していきます!), さっきのものとじっくり比べると、 “headers”内の “Accept”項目が変化しているのが分かりますね!, 先ほどの-Xのみの例では "Accept": "/" だったのに対し、今回の-X -Hでは Accept": "application/json" となっています!, HTTPヘッダに"content-type: application/json"を追加し、POSTメソッドに-dオプションを付与することで、POSTメソッドでJSON形式のデータをリクエストすることができます。, リクエストヘッダ、レスポンスヘッダとボディが見れるので、デバッグする時に付与すると便利です。, Linuxコマンドは正常終了時は0、異常終了時は1~255の正の整数が返ってくるものなのですが、curlはHTTP通信時に400系エラーや500系エラーなどが出ても、終了コードが0になってしまいます。, エラーになってもしれっと正常終了する、ミス隠蔽マンcurlくんですが、-fオプションを付ければ、異常終了時に終了コード22で終わってくれます!やったー!, 404でも500でも、curlのエラーコードとHTTPエラーコードが表示されるので、とっても分かりやすいです!, ただ、curl -fのみではフェールセーフではなく、401や407エラーなど認証系エラーが無視される可能性があるという公式ドキュメントの記述もあります。, そのためcurl -sSを追加してエラー時のみエラーメッセージを表示する方法もあるそうです!, curl難しい…!特に終了コードの概念はなかったので、新しいことだらけでびっくりしてました!, また、誤認等ございましたら、そっと教えていただけますと幸いです…!>< よろしくお願いいたします。, ちなみに「実行されるとアプリサーバーにJSONを送るだけのバッチ」は無事に完成したので、前回の記事でご紹介いただいたラーメン屋さんで一杯やろうかと思います!, 当記事は下記記事の続きですが、「Linuxとかシェルって何?」を知っていればこの記事からでも読めます!【黒い画面恐怖症向け】Linuxとかシェルとかざっくり知りたいのでゆるく図解した ↩, httpbinでは、デバッグ等に便利なようレスポンスにorigin等出してくれちゃうのですが、個人情報もあるため記事では伏せています! ↩, 大手優良企業特化型システム内製支援事業。ご連絡は https://www.is-tech.co.jp/ の問い合わせフォームをご利用ください。. 0, 回答 標準の文字コードでShift_JISを使用しています。, LinuxではUTF-8が標準の文字コードの為、 By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. Help us understand the problem. (titleが文字化けしていても、通信自体はうまく行っているので大丈夫です!阿部寛さんのホームページでF12/option+command+Iを押してみて、内容を見比べてみてください!), もし下記のようなメッセージが出てくる場合、curlがデフォルトで入っていない可能性があるので、インストールを試してみてください。, さて、これからcurlコマンドを書いていくのですが、実際にアプリサーバと疎通した時にどういう返事が返ってくるのか、気になりませんか?, さくっと試してみるだけなら、Googleとか有名なサイトを少し見てみれば良いのですが、, 「エラーが出たときはどんなものが返ってくるのか?」 vimで見たところまた違った表記だったため追記させて頂きます。, teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。, 評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。, 上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。, cat でみた結果です。vimで見たところまた違った表記になっていましたので、追記させて頂きます。, ブラウザでみたときは Windows,Mac,Linux(デスクトップ)どの環境で見ても、文字化けしていません。curlの結果だと文字化けしてしまいます。, はい、meta や charset で 検索したのですが、ヒットしませんでした・・・,

2018年2月4日(日曜日) ●通常練習/日曜練習会(2時間)

, おそらくブラウザはWindowsを使用しているので、 上記文字化けはLinux(CentOS,Ubuntu共に)でcatで見た結果です。 「実行されるとアプリサーバーにJSONを送るだけのバッチ」を作りたい人です1。, 先輩に実装方法を聞いたら「そんなんcurl一択やんけ」と言われたので、curlコマンドを調べて使ってバッチを作成しました!, curlコマンドは、こちらの記事で紹介されているように、様々なプロトコルを使用してデータ転送を行うことができるコマンドです。, HTTPのGETやPOSTはもちろん、HTTPSやFTP, Telnet, SMTP, IMAP, POP3など様々な通信プロトコルをサポートしています。, 最近の端末には最初から入っていて、ターミナルですぐにcurlコマンドを使用できる状態だと思いますが、入っていない場合はインストールが必要です。, バージョン情報を聞いただけでサポートしてるプロトコルとバージョンの特色も表示してくれるの、優しいですね!, Googleをcurlで取得すると、このようにひどく長いHTMLが取得できると思います。, Googleのレスポンス、長いし意味分かんないよ!ピンと来ないよ!という方は、阿部寛さんのホームページを参考にしてみてはいかがでしょうか?, 上述のようなシンプルで美しいHTMLが返ってこれば、上手く行っています! 表示が文字化けしているものと思われます。, 下記できれいに表示されたりしませんか? you can read useful information later efficiently. 表示するデータに日本語が含まれる場合は chcp 65001で UTF-8 表示モードに変更 3. What is going on with this article? コマンドプロンプトの表示フォントを Unicode 対応のもの(MSゴシックなど)に変更しておく 2. どーもー、某ベンチャー系のIT企業に勤めてる私ですが、今回業務上curlコマンドを利用する事があったので、せっかくなので当記事にまとめておく事にしました。, curlコマンドとは・・・任意のサーバーやWebサイトへhttpリクエストを送って、そのレスポンスをチェックすることができるコマンドになります。, (上記は、Googleへcurlコマンド(httpのget)を実行した時の結果です。ちゃんとGoogleからHTMLソースが返ってきてる事が分かりますね), 業務で、Linuxを利用する方や、インフラ・ネットワーク担当者なら、知っていて当然のコマンドですね。, また、http以外にも、メールやFTP、TELNETなど多くのプロトコルに対応しているようです。, 一般的には、APIの疎通確認によく使われるコマンド・・・って認識の方がほとんどではないでしょうか。, というわけで今回は、curlコマンドの基本的な使い方:HTTPリクエストのGET、POST、REST(json形式)メソッドの疎通を確認する手順。, 以下、curlコマンドにてよくチェックするHTTPリエクストの3メソッドになります。, 上記は、googleに対してGetメソッドリクエストを送っています。すると以下のように、HTMLレスポンスを返してくれます。, こちらは、以下のようにHTTPレスポンスヘッダーの情報を返してくれます(ボディの情報はなし), 「-vオプション:リクエスト&レスポンスのHTTPヘッダー確認や、接続先サーバーのSSL証明書の情報など」, POSTメソッドの確認をしたい場合は、-XPOSTオプションを記載することでOK!です。, ちなみに、上記をcurl実行すると、googleではPostメソッドでの通信は許可されていないようで、405エラーのレスポンスが返ってきていますね。, パラメーターとして、HTTPヘッダーの設定をしてPOST送信するときの例です(上記は、2つの設定をしています), ※「content-type = application/x-www-form-urlencoded」の場合、「–data オプション」でリクエストボディを設定します。, 上記は、フォーム画面の入力値をパラメーター設定値として、Postメソッドでリクエストしている例になります。, ちなみに、レスポンスボディ情報が無く、実行後に何も表示されない場合もけっっこうあるので、-vオプションを付けると良いでしょう(ヘッダー内容等を確認できる), 続いて、API通信に一般的に使われているRESTリクエストで、json形式のデータを送る場合。以下コマンド例, ※-H “x-authkey:aaa” : 個人的に任意に設定したヘッダーになります(無くても良い), ※-d “{“companyId”:”abc”,”memberId”:111,”plan”:5}” だとエラーになります。オブジェクト内の「”」については、「\」を付けてエスケープ(文字列化)してやる必要があります。, ※「Content-Type:application/json」で、-d を -data にすると、エラーになります。。。, 上記のように、RESTリクエストは、内部的にはPOSTリクエストと変わりないので、「-XPOST」オプションを設定してやります。, また、json形式は「Content-Type:application/json」で指定し、データは-dオプションで指定してやります。, 実際に、APIの設定がされているURLに、RESTリクエストを送ってやると、ちゃんとjsonデータがレスポンスされる事が確認できます(以下例), というわけで、Get、Post、RestとCurlコマンドを試してきましたが、個人的に気になった注意点について、一応以下にまとめておきます。, 「’」だとエラーになる・・・例:「-H ‘Content-Type:application/json’」, 以下であれば、 -XPOST https://aaa.co.jp/admin を一番最後に持ってきても問題はない。, 「オプションの、-dと-dataは違う扱い・・・上記「REST通信の確認」でエラーとなったため」, curlコマンドにて、オレオレSSL証明書のサーバーへリクエストを送ると、上記のようにエラーで返ってきます。, ですが、-kオプションを利用することで、オレオレSSL証明書のURLでも、ちゃんと実行することができます(以下例), レスポンス内容が日本語で文字化けしている事が多々あります。そういう場合は、以下の手順で対応できます。, ※UTF-8に変更しても文字化けが起こる場合は・・・日本語表示が可能なフォントを選択する必要があります。, 手順:コマンドプロンプト(アイコン)で右クリック→プロパティ>フォント>フォントで「MSゴシック」を選択。, curlコマンドの利用シーンって、基本的にLinuxが多いと思いますが、ここではWindowsで利用できるようにする手順をまとめていきます。, ダウンロードしたzipファイルは解凍して、解答したフォルダを、「C:\Program Files (x86)\」以下に移動してください(場所は任意の場所で良いが), 続いて、配置したフォルダ内の「curl.exe」があるディレクトリパスを確認します。, 違いは読み込みの順番で、システム環境変数が読み込まれた後にユーザー環境変数が読み込まれる流れになります。, (仮に、同名のコマンドがあった場合に、意図しない動作原因となってしまうので注意してください), あとは、システム環境変数の場合は、全ユーザー反映となりますが、ユーザー環境変数は該当ユーザーのみとなります。, で、環境変数の設定が終わったら、コマンドプロンプト(cmd)にてコマンド実行してみましょう(cmdは一度再起動してください), 上記のように実行されたら、Windowsでもcurlコマンドが使えるようになります。, $ curl -XPOST https://aaa.com/index.php -H “Content-Type: application/json” -H “cookie:JSESSIONID=aaa”, $ curl -XPOST https://aaa.com/index.php -H “Content-Type: application/x-www-form-urlencoded” –data “host=aaa.ne.jp&user=admin&password=passadmin”, $ curl -XPOST https://aaa.com/index.php -H “Content-Type:application/json” -H “x-authkey:aaa” -d “{\”companyId\”:\”abc\”,\”memberId\”:111,\”plan\”:5}”, curl -XPOST https://aaa.co.jp/admin –data “host=aaa.ne.jp&user=admin&password=passadmin”, パス例 : C:\Program Files (x86)\curl-7.61.0-win64-mingw\bin, Chromeで閲覧サイトのCookie情報を確認する方法と、編集・削除・追加する方法も, CSRF(クロスサイト・リクエスト・フォージェリ)とは?その仕組みと対策方法について, curlコマンドの使い方 ~GET、POST、REST(json)の確認と、windowsでの利用手順, 「Advanced REST client」の使い方まとめ ~GoogleChromeの拡張ツール, WordPress(ワードプレス)のseo対策で、おすすめのプラグイン、テーマ・テンプレートと、やっておくべ設定, ブランディングの意味とは?企業(会社)や自分(セルフ)のブランドイメージ戦略(手法)は、ブログやデザインが重要, インバウンド(inbound)マーケティングとは?ソーシャルメディア活用など、BtoBの会社(企業)が知るべきWeb事例, WordPressとは?ワードプレスのインストール方法・使い方と、オススメの無料テーマ(テンプレート)・プラグイン紹介, メルマガ(メールマガジン配信)の開封率を上げるテンプレート素材(無料・HTML版)の作成(作り方)と、文章の書き方とは, コンテンツ(インバウンド)マーケティングとは?seoとも相性の良い「最新webマーケティング」のセミナー内容について, Web(ネット)マーケティングとは?ウェブコンサルティングのプロが、セミナー(講座)で言った、企業ブログの運営手法, ランディングページとは?landing pageの作り方(制作手順)と、LPO対策で重要な8つのポイントをまとめてみた, ネオヒルズ族とは?ネオヒルズ族の稼ぎ方で問題になっている点や逮捕事例についてまとめてみた, キャッチコピーとは?読者の注目を一瞬で惹きつけるキャッチコピーの作り方をまとめてみた, 文章の書き方で4つのポイントを守ったら、1記事で1日500人以上の方に読まれるようになった, Google対策に必須!ウェブマスターツール(WebMasterTool)へのサイト登録と基本的な使い方, ハッキング対策まとめ!自分のサイトを守るためにやっておかなければならない10のこと, curlコマンドの基本。GET、POST、REST(json)や、よく利用するオプション.

センター シャーペン 落ちた 6, モーニング娘 全盛期 年収 4, 遠距離 連絡しない 心理 14, ブルーノ セラミックプレート グレー 13, 洗面化粧台 奥行 300 21, 社会福祉法 改正 平成30年 ポイント 4, プロテインシェイカー バネ 使い方 5, 関西 Web系 企業 6, Youtube 月間再生数 収入 16,