3

Google リーダー API に http リクエストを送信すると、異常な応答コードが返されます。ドキュメントに従って、認証コードを要求し、それをすべての要求のヘッダーに含めました。ログインを実行して認証コードを取得した後、ドキュメントの一部である次の URL にアクセスしてみました。

http://www.google.com/reader/api/0/stream/items/contents

リクエストを送信すると、「必要な長さ」を意味するはずの 411 ステータス コードが返されます。私が見つけたように、長さはメッセージ本文の長さ (オクテット単位) であるはずです。このリクエストにはメッセージ本文はありません。ヘッダーは POST パラメータ i="item id" と URL 自体だけです。「Content-Length」ヘッダーを「0」に設定してみましたが、「-1」にも設定できませんでした。

本当に興味深いのは、Google が認証手順を変更する前に、この同じコードが正常に機能していたことです。彼らが何か他のものを変更したことは明らかです...

私の質問は、正確に411応答コードを引き起こす原因と、それを防ぐ方法です?

4

1 に答える 1

2

このエラーは、POSTおよびPUTリクエストタイプでのみ発生します。これら2つ(一種)は、リクエストパラメータ(プレーンテキストと添付ファイル)を含むリクエスト本文を想定しているためです。

ただし、ドキュメントが示唆しているように、これはほとんど廃止された値であり、現実的には、WebサービスはContent-Lengthに依存せずにリクエストを処理する必要があります。

つまり、リクエストの送信者の問題ではありませんが、サービス側のバグです(私は言うでしょう)。

それでも、Content-Length(適切な大文字化に注意)要求ヘッダーを0に設定することは、回避策である必要があります。

于 2012-02-24T01:21:26.310 に答える