为什么REST PUT返回HTTP / 1.x 405方法不允许

时间:2013-08-18 16:54:11

标签: php web-services rest

我尝试了这个REST WS http://phprestsql.sourceforge.net/

当我选择PUT动词并复制并粘贴到文本框

firstname=Jim
surname=Example
email=jim@example.org
company_uid=1

我收到此回复错误:

HTTP/1.x 405 Method Not Allowed
Date: Sun, 18 Aug 2013 16:50:06 GMT 
Via: 1.1 varnish 
Allow: GET, HEAD 
Server: Apache/2.2.15 (CentOS) 
Age: 0 
Vary: Host, Accept-Encoding 
Content-Type: text/html 
Cache-Control: max-age=172800 
X-Varnish: 244445725 
Connection: keep-alive 
Content-Length: 0 
Expires: Tue, 20 Aug 2013 16:50:06 GMT 

为什么我不能按预期获得

HTTP/1.x 201 Created

1 个答案:

答案 0 :(得分:0)

PUT要求您已经知道特定的资源ID - 它旨在用新记录(您提供的)的内容替换当前记录的内容。如果您只是创建以前从未存在过的新记录,并且您不想替换或覆盖其他任何记录,则应使用POST

来自链接的网站:

  

有两种方法可以向表中添加行:

     

使用PUT方法,我们可以将资源写入特定的URL,但是   为此,我们必须已经知道要插入的主键   (因为主键构成了URL的一部分)。 PUT方法应该   用于创建或覆盖已知的命名资源。

     

使用POST方法,我们可以将行表示发送到表URL   并让它附加到自己身上。应该使用POST方法   创建一个全新的资源作为集合的子资源(和   当您希望服务器为您配置URL时。)