私のカール要求に問題があります。私はGETリクエストを介してWebサーバーからJSONを取得しています。これはWebブラウザで本当にうまく機能します。しかし、カール(またはルビーコード)から取得すると、JSONの一部の値が空です(ブラウザにはありません)。それは私が受け入れられない多くのデータを失うことになります。誰にもこれが起こる原因のアイデアはありますか? 私は既にユーザーエージェント(下記参照)を変更しようとしましたが、それでも同じ結果が得られます。ウェブブラウザ以外のJSONを返しているCurl
curl "http://..../path/to/json"
または
curl -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" "http://..../path/to/json"
同じ結果になります。
編集:私はSafariからカール要求をコピーしようとしましたが(下記参照)、同じ欠損値があります。しかし、Chromeはカールと同じ結果を表示します。
curl 'https://path/to/json' -XGET -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Cache-Control: max-age=0' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4'
質問にサンプルの回答を含めることはできますか? –
'-H'はヘッダを配置します。ユーザーエージェントを変更したい場合は、 '-A'フラグを使用する必要があります。 "curl -A" Mozilla/5.0(Windows; U; Windows NT 5.1; de; rv:1.9.2.3)Gecko/20100401 Firefox/3.6.3 "" http://..../path/to/json " ' –
あなたは受け入れられた答えを見てください。https://stackoverflow.com/questions/28760694/how-to-use-curl-to-get-a-get-request-exactly-same-as-using-クロム、他のヘッダーフィールドがユーザーエージェントだけで必要とされるかもしれません。それは本当にあなたが要求しているサーバーに依存します。 – minhhn2910