我可以在Python Windows SDK中使用此动词.但不是在生产中.为什么?我究竟做错了什么?
错误消息包括(仅通过firebug或fiddler看到)
格式错误的请求
或类似的东西
我的代码看起来像:
from google.appengine.ext import db
from google.appengine.ext import webapp
class Handler(webapp.RequestHandler):
def delete(self):
key = self.request.get('key')
item = db.get(key)
item.delete()
self.response.out.write(key)
Run Code Online (Sandbox Code Playgroud) 据我所知,你可以通过POST发送JSON数据,但PUT是否应该专门在URI中发送信息,或者你可以同时执行这两项操作吗?
谢谢!
为什么我们在AJAX中使用方法'PUT'以及它最常用的地方?
例:
$.ajax({
url: 'script.php',
type: 'PUT',
success: function(response) {
//...
}
});
Run Code Online (Sandbox Code Playgroud)
为什么作者不是简单地使用GET/POST?
我想知道使用 POST 或 PUT 请求将文件上传到 Amazon Web Services S3 的优缺点。
我已经读过像一些SO问题这一个,但我想使用AWS API时知道具体差异。
我设法同时使用了两者,但几乎看不出区别。我通过 AJAX 和 XMLHTTPRequest 对象使用 PUT 和 POST,直接从浏览器上传,node.js 后端生成签名。
我注意到的不同之处在于,当我生成签名时,我无法使用 PUT 限制服务器端的内容类型和长度,但这可能是因为我现在才刚刚学习它。
只是一个简短的问题:
拥有模型的新实例并发布model.save()URL设置为/api/store/category,Backbone发布POST.根据我的知识,它应该使用PUT,就像在"PUT或POST:故事的REST"博客文章中提到的那样.
谁是对的?BB或这篇文章的作者?
使用 POST 似乎没有任何优势。是否存在 PUT 工作得更好/更快/更安全/其他的特定场景?当您可以使用 POST 以基本相同的工作量完成所有事情时,为什么有人要为全新的 http 方法编码?
如果我使用a UUID来将实体标识为我的REST端点的URI的一部分:
/entities/<uuid>/
Run Code Online (Sandbox Code Playgroud)
这UUID是由客户在创建新实体时生成的,就使用PUTvs而言,是否有最佳实践POST?换句话说,它UUID是由客户端生成的,而不是由服务器生成的.
如果我要使用PUT,是否预期消息有效负载也包含UUID?在这种情况下,消息以及标识实体的URI都将包含UUID.
有关规范,请参阅:REST RFC
REST建议通过GET方法完成查询(而不是资源创建).在某些情况下,查询数据太大或结构化使得难以放入URL,并且为了解决这个问题,修改RESTful API以支持与主体的查询.
似乎需要body的RESTful查询的约定是使用POST.这里有一些例子:
查询不会修改系统的内部状态,但POST不支持幂等操作.但是,PUT是幂等的.为什么对于需要正文的查询,RESTful API是否将PUT与正文而不是POST一起使用?
注意: 一个流行的问题询问哪个(PUT vs POST)是创建资源的首选.这个问题询问为什么PUT不用于需要实体的查询.
互联网上有许多资源可供使用,其中讨论了PUT与POST。但是我不明白这将如何影响在RestFul服务下完成的Java实现或后端实现?我提到的链接如下所述:
https://www.keycdn.com/support/put-vs-post/
https://spring.io/understanding/REST#post
https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
例如,假设有一个针对地址的RestFul Web服务。因此,POST /addresses将完成更新地址PUT /addresses/1的工作,并完成创建地址的工作。现在,HTTP方法PUT和POST如何控制后台服务代码在做什么?
PUT /addresses/1
Run Code Online (Sandbox Code Playgroud)
可能最终在数据库中创建相同地址的多个条目。
所以我的问题是,幂等行为为什么链接到HTTP方法?
您将如何使用指定的HTTP方法控制幂等行为?还是只是建议准则或标准做法?
我不是在寻找什么是幂等行为的解释,但是是什么使我们标记这些HTTP方法呢?
我试图实现REST WCF以探索PUT和POST动词之间的区别.我已使用该服务在某个位置上传了一个文件.
服务实现如下:
[OperationContract]
[WebInvoke(UriTemplate = "/UploadFile", Method = "POST")]
void UploadFile(Stream fileContents);
public void UploadFile(Stream fileContents)
{
byte[] buffer = new byte[32768];
MemoryStream ms = new MemoryStream();
int bytesRead, totalBytesRead = 0;
do
{
bytesRead = fileContents.Read(buffer, 0, buffer.Length);
totalBytesRead += bytesRead;
ms.Write(buffer, 0, bytesRead);
} while (bytesRead > 0);
using (FileStream fs = File.OpenWrite(@"C:\temp\test.txt"))
{
ms.WriteTo(fs);
}
ms.Close();
Run Code Online (Sandbox Code Playgroud)
}
客户端代码如下:
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost:1922 /EMPRESTService.svc/UploadFile");
request.Method = "POST";
request.ContentType = "text/plain";
byte[] fileToSend = File.ReadAllBytes(@"C:\TEMP\log.txt"); // txtFileName contains …Run Code Online (Sandbox Code Playgroud)