エアプレイレシーバー(テレビメディアプレーヤーに含まれる)用のAndroidコントローラーを構築しようとしています。
リクエストをテストするためにcurlを使用し、httpリクエストを構築するchrome拡張機能であるpostmanも使用しています。postman を使用すると、サーバーはリクエストを十分に理解しますが、curl でリクエストを再現してはなりません。
たとえば、現在再生中のメディアの現在位置を尋ねるリクエストは次のとおりです。
curl -i \
192.168.1.42:7000/scrub \
-H "Connection: keep-alive" \
-H "Cache-Control: no-cache" \
-H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31" \
-H "Accept: */*" \
-H "Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4" \
-H "Accept-Encoding: gzip,deflate,sdch" \
-H "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3" \
戻り値:
HTTP/1.1 200 OK
Content-Type: text/parameters
Content-Length: 38
duration: 0.000000
position: 0.000000
郵便配達員は正しい値を返します:
duration: 275.838989
position: 13.000000
curl リクエストで使用されるヘッダーは、Chrome の開発ツールを使用して postman で作成されたリクエストから取得されます。
それで、効果的に送信されたリクエストと開発ツールに表示されるものとの間にChromeのリクエストに違いはありますか? カールが同じ応答を再現できないことは私には意味がないので、問題は確かに他の場所から発生する可能性があります。