[解決済み] Chromeを使うのと全く同じようにcurlを使ってGETリクエストを取得する方法とは?
2022-03-04 22:14:13
質問
ウェブAPIがあります
http://something.com/api
で、GETでレスポンスボディを取得したい。
これが私のコマンドです。
curl "http://something.com/api"
もちろん、失敗してエラーメッセージが表示されます。
Chromeで上記のURLを入力すると、すべて正しく表示されます。しかし、私はFirefoxで同じことを行うには、URLは私に同じエラーメッセージを与える。Chromeの拡張機能DHCで同じことをすると、また正しい応答が得られます。いろいろ調べた結果、curlのオプションである
--user-agent
が違います。ユーザーエージェントをChromeに設定する正しい方法は何ですか?それとも、これは問題ではなく、他のフィールドから問題が発生するのでしょうか?どうもありがとうございました。
解決方法を教えてください。
curlリクエストにユーザーヘッダの文字列を設定する必要がある場合は
-H
のようにユーザーエージェントを設定するオプションがあります。
curl -H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" http://stackoverflow.com/questions/28760694/how-to-use-curl-to-get-a-get-request-exactly-same-as-using-chrome
ユーザーエージェントフォームを最新のものに更新しました。
のようなプロキシツールを使って チャールズ・プロキシ というような質問をされることがありますが、そのような場合、手短に済ませることができます。ここでは、このSOページを例にして、私が行っていることを説明します(2015年7月現在、Charlesバージョン3.10を使用)。
- Charles Proxyを起動する
- ブラウザでWebリクエストを行う
- Charles Proxyで目的のリクエストを検索する
- Charles Proxyでリクエストの上で右クリック
- cURLリクエストのコピー」を選択
これで、ブラウザが行ったリクエストを反映したcURLリクエストをターミナルで実行できるようになりました。以下は、このページへの私のリクエストがどのようなものであったかです(クッキーヘッダは削除されています)。
curl -H "Host: stackoverflow.com" -H "Cache-Control: max-age=0" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36" -H "HTTPS: 1" -H "DNT: 1" -H "Referer: https://www.google.com/" -H "Accept-Language: en-US,en;q=0.8,en-GB;q=0.6,es;q=0.4" -H "If-Modified-Since: Thu, 23 Jul 2015 20:31:28 GMT" --compressed http://stackoverflow.com/questions/28760694/how-to-use-curl-to-get-a-get-request-exactly-same-as-using-chrome
関連
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] YouTube APIからYouTubeビデオのサムネイルを取得する方法を教えてください。
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] cURL呼び出しによるHTTPリクエストを使用してヘッダーを送信する方法は?
-
[解決済み] HTTP POST Web リクエストの作成方法
-
[解決済み] Firefox または Chrome ブラウザから HTTP POST リクエストを手動で送信する方法
-
[解決済み] cURLを使用したauthorizationヘッダーの設定方法
-
[解決済み】cURLを使用して、リクエストとレスポンスタイムを一度に測定する方法は?
-
[解決済み】cURL エラー 60: SSL 証明書: ローカルの発行者証明書を取得できない
-
[解決済み】PostManで特定のCURLをシミュレートしてみる
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] .tar.gzファイル送信時にCurlエラー56 "Failure when receiving data from peer" が発生する。
-
[解決済み] HTTPSのURLにアクセスしようとしているときに、cURLを使用して証明書を処理するにはどうすればよいですか?
-
[解決済み] cURLを使用したCORSリクエストのデバッグ方法は?
-
[解決済み] wgetやcurlのクエリでワイルドカードを使用する
-
[解決済み] Content-Type ヘッダー [application/x-www-form-urlencoded] はサポートされていません [重複] 。
-
[解決済み] CentOS で非 root ユーザーの SSL 接続で cURL が動作しない(エラー#77)。
-
[解決済み] cURLを使用して、リクエスト時間とレスポンス時間を一度に測定するにはどうすればよいですか?
-
[解決済み] curlがプロキシを無視するようにするにはどうしたらいいですか?
-
[解決済み] curl -GETと-X GET
-
[解決済み】curlのレスポンスボディの末尾に自動的に改行が追加される。