0

RESTful API とドキュメントを作成しようとしています。ただし、修正方法がわからない奇妙なエラーが発生しているようです。

これは機能します:

curl --header "Accept: application/json" http://api.example.com/v1/method.php?key=test

ただし、「.php」拡張子を削除してこれを実行すると、次のようになります。

curl --header "Accept: application/json" http://api.example.com/v1/method?key=test

実行すると 406 エラーが発生するはずです。カールが送信しているヘッダーをドロップすると、両方のリクエストが正常に機能します。ただし、私が使用しているドキュメンテーション ツール (swagger) にはそれが必要です。

これが私の書き換えルールです(ここにあります):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
4

1 に答える 1

0

試す

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule method method.php [L]

操作は失敗しませんでした。

バックエンド サービスは、返されているレスポンス タイプがクライアント リクエストの Accept-Type HTTP ヘッダーで提供されていないと言っています。

参照: http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

  • Service から返された応答 (コンテンツ タイプ) を調べます。
  • これ (コンテンツ タイプ) をリクエストの Accept ヘッダーに指定します。

http://en.wikipedia.org/wiki/HTTP_status_code -> 406

于 2014-11-24T17:57:56.207 に答える