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 错误。现在,如果您删除 curl 发送的标头,则两个请求都可以正常工作。但是我正在使用的文档工具(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 回答