2013-08-18 42 views
1

我想这REST WS http://phprestsql.sourceforge.net/为什么REST PUT返回HTTP/1.x的405不允许的方法

当我选择PUT动词,复制和粘贴文本中

firstname=Jim 
surname=Example 
[email protected] 
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

'Allow:GET,HEAD' can not you add other methods? – 2013-08-18 17:00:22

+0

这不是我的网站,它是有人制作的教程。 – user310291

+0

您在哪个URI上发送了“PUT”?是否按照教程中所述在'/ tutorial/user/4'上? –

回答

0

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

从网站链接:

有两种方法添加一行到表:

使用PUT方法,我们可以写一个资源到特定的URL,但 做到这一点我们必须知道我们要在 处插入主键(因为主键是URL的一部分)。应使用PUT方法 来创建或覆盖已知的命名资源。

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

相关问题