标签: http-delete

什么REST PUT/POST/DELETE调用应按约定返回?

  1. 根据"REST意识形态",PUT/POST/DELETE请求的响应主体应该是什么?

  2. 返回代码怎么样?是否HTTP_OK足够?

  3. 如果有的话,这些公约的原因是什么?

我发现了一篇描述POST/PUT差异的好帖子:POST vs PUT 但它仍然没有回答我的问题.

rest post http http-delete

150
推荐指数
2
解决办法
11万
查看次数

如何在HttpURLConnection中发送PUT,DELETE HTTP请求?

我想知道是否可以将PUT,DELETE请求(实际上)发送java.net.HttpURLConnection到基于HTTP的URL.

我已经阅读了很多文章,描述了如何发送GET,POST,TRACE,OPTIONS请求,但我仍然没有找到任何成功执行PUT和DELETE请求的示例代码.

java put httpurlconnection http-delete

131
推荐指数
4
解决办法
25万
查看次数

使用http DELETE删除资源

因此,假设Http中的DELETE谓词是幂等的,当我发出以下请求时,第二个(或第三个,或第四个,等等)会发生什么?

DELETE /person/123
Run Code Online (Sandbox Code Playgroud)

第一次,资源被删除,我返回204(成功,没有内容).我应该在后续电话或404(未找到)上返回204吗?

rest http http-delete

109
推荐指数
4
解决办法
6万
查看次数

是否允许HTTP-DELETE请求的响应体?

我假设响应代码200总是允许响应主体,但我找不到任何明确提及DELETE请求的响应主体.

rest http http-delete

76
推荐指数
2
解决办法
4万
查看次数

如何在IIS中为ASP.NET MVC启用HTTP PUT和DELETE?

我使用HTTP PUTDELETE我的ASP.NET MVC3应用.当我在本地运行时,每件事都能正常工作; 但是当我将应用程序发布到服务器时,这些方法不起作用.

是否有任何特殊设置可以使Web服务器支持PUTDELETE请求?我正在使用IIS 7.5的共享主机.

更新:

我启用PUTDELETE请求IIS manager.PUT命令工作正常.但DELETE仍然行不通.我创建请求jQuery:

我在这个页面:

http://domain.com/dashboard/edit-site/103323/links/
Run Code Online (Sandbox Code Playgroud)

我的ajax电话是:

$.ajax({
    // url: same as page-url,
    cache: false,
    type: 'DELETE',
    data: { linkid: $(link).data("linkid") },
    beforeSend: function () {
        // doing something in UI
    },
    complete: function () {
        // doing something in UI
    },
    success: function (data) {
        // doing something in UI
    },
    error: function () { …
Run Code Online (Sandbox Code Playgroud)

c# http-put iis-7.5 asp.net-mvc-3 http-delete

56
推荐指数
3
解决办法
6万
查看次数

HTTP协议的PUT和DELETE以及它们在PHP中的用法

介绍

我读过以下内容:

超文本传输​​协议(HTTP)是网络的生命.每次传输文档或发出AJAX请求时都会使用它.但是,令人惊讶的是,在某些Web开发人员中,HTTP相对未知.

HTTP谓词构成了我们"统一接口"约束的主要部分,并为我们提供了与基于名词的资源相对应的动作.主要或最常用的HTTP谓词(或方法,因为它们被正确调用)是POST,GET,PUTDELETE.

咦?

好吧,我们突然忘记了事情.

PUT并且DELETE,他们说.我只听说过POSTGET,从来没有见过类似的东西$_PUT或者$_DELETE在我曾经看到任何PHP代码经过.

我的问题

这些方法(PUT)和(DELETE)是什么,如果可以在PHP中使用它们,我将如何解决这个问题.

注意:我知道这不是一个真正的问题但我总是抓住一个学习机会,如果我看到一个,并且非常想学习在PHP中使用这些方法,如果可能的话.

php http http-put http-delete http-options-method

56
推荐指数
5
解决办法
6万
查看次数

RESTful取消删除

支持数据服务的取消删除或延迟/批量删除是一个相当普遍的要求.我想知道的是如何以RESTful方式实现它.我在几个不同的选择之间徘徊(其中没有一个对我来说似乎非常有吸引力).我认为,这些不同选项的共同点是需要一个API,它返回标记为特定资源类型的已删除的所有资源.

以下是我考虑过的一些选项以及它们的一些优点/缺点:

将资源标记为已删除的选项:

  • 使用HTTP DELETE将资源标记为已删除.
  • 使用HTTP PUT/POST更新已删除的标志.这感觉不对,因为它将基本上是删除的内容从HTTP DELETE方法映射到其他HTTP方法.

GET-ing资源标记为删除时的选项:

  • 返回标记为已删除的资源的HTTP状态404.干净透明,但我们如何区分真正删除的资源与刚删除的资源之间的区别.
  • 返回HTTP状态410.提供告知差异的方法,但410从技术上说它"应该被认为是永久性的.具有链接编辑功能的客户端应该在用户批准后删除对Request-URI的引用." 这里的"预期"和"应该"这两个词可能有足够的摆动空间.不确定客户端中410的支持/理解程度如何.
  • 返回HTTP状态200并包括指示资源被删除的标志字段.这似乎很奇怪,因为首先删除它的想法是因为你实际上想要它不出现.这推动了将已删除资源过滤到客户端的责任.

包含此已删除资源的响应选项:

  • 省略被删除的资源.干净简单.但是,如果您真的想了解已删除的资源,该怎么办?
  • 将它们与表示已删除的字段一起包括在内.这推动了将已删除资源过滤到客户端的责任.如果您只想浏览活动或已删除的资源,则会使分页变得棘手.

更新标记为删除的资源时的选项:

  • 使用HTTP状态404.资源是否正确?但是,如何区分标记为已删除的资源和实际删除的资源之间的区别.404响应中的HTTP正文可以在此消除歧义,但随后客户端将解析/解释您的正文以消除歧义.也许响应标题可能有帮助吗?哪一个?自定义标题?
  • 使用HTTP状态409以及有关必须首先取消删除资源的消息.

取消删除标记为删除的资源的选项:

  • 使用HTTP PUT/POST进行资源的更新操作,并将其标记为活动状态.这只有在您没有为资源的GET操作返回HTTP 404时才有效,因为它自从PUT/POST到"未找到"的资源(404)后才会生成.
  • 使用HTTP PUT/POST进行资源的创建操作.这里的问题是哪些数据优先?在创建操作中发送的数据?或者正在取消删除的数据?将其从任何其他可能返回的查询中过滤掉.然后,如果资源标识符指向标记为已删除的资源,则将创建资源的HTTP PUT/POST视为取消删除.
  • 单独的REST路径专用于取消删除标记为删除的资源.

这绝不是一份详尽的清单.我只是想列举一些在我脑海中蹦蹦跳跳的选项.

我知道如何做到这一点的答案就像往常一样,"它取决于".我很好奇的是你会用什么资格/要求做出决定?您是如何看待自己实施或实施的?

rest http undelete http-delete

54
推荐指数
5
解决办法
5385
查看次数

使用CURL和编码的URL删除

我正在尝试使用CURL这样的请求:

curl -X DELETE "https://myhost/context/path/users/OXYugGKg207g5uN/07V" 
Run Code Online (Sandbox Code Playgroud)

哪里OXYugGKg207g5uN/07V是哈希,所以我想我需要在执行此请求之前进行编码.

我试过了 curl -X DELETE --data-urlenconded "https://myhost/context/path/users/OXYugGKg207g5uN/07V"

一些想法?

url encoding curl request http-delete

52
推荐指数
2
解决办法
7万
查看次数

Angular2中Http.DELETE请求的正文

我正试图从Angular 2前端与一个有点RESTful的API交谈.

要从集合中删除某些项目,除了可以附加到URL之外,我还需要发送一些其他数据(即可以附加到URL),即身份验证令牌,某些集合信息和一些辅助数据.

我发现这样做最直接的方法是将身份验证令牌放入请求标头和正文中的其他数据.

但是,Angular 2的Http模块并不完全赞同带有正文的DELETE请求,并尝试发出此请求

let headers= new Headers();
headers.append('access-token', token);

let body= JSON.stringify({
    target: targetId,
    subset: "fruits",
    reason: "rotten"
});

let options= new RequestOptions({headers:headers});
this.http.delete('http://testAPI:3000/stuff', body,options).subscribe((ok)=>{console.log(ok)}); <------line 67
Run Code Online (Sandbox Code Playgroud)

给出了这个错误

app/services/test.service.ts(67,4): error TS2346: Supplied parameters do not match any signature of call target.
Run Code Online (Sandbox Code Playgroud)

现在,我在语法方面做错了吗?我很确定每个RFC都支持DELETE主体

是否有更好的方式来发送数据?

或者我应该将其转储到标题中并将其称为一天?

任何关于这个难题的见解都将受到赞赏

rest http-delete angular

52
推荐指数
9
解决办法
7万
查看次数

Axios使用正文和标题删除请求?

我在ReactJS中编程时正在使用Axios,我假装向我的服务器发送DELETE请求.

为此,我需要标题:

headers: {
  'Authorization': ...
}
Run Code Online (Sandbox Code Playgroud)

而身体是由

var payload = {
    "username": ..
}
Run Code Online (Sandbox Code Playgroud)

我一直在网络中搜索,只发现DELETE方法需要一个"param"并且不接受"数据".

我一直试图像这样发送它:

axios.delete(URL, payload, header);
Run Code Online (Sandbox Code Playgroud)

甚至

axios.delete(URL, {params: payload}, header);
Run Code Online (Sandbox Code Playgroud)

但似乎没有任何作用......

有人可以告诉我它是否可能(我认为是)发送带有标题和正文的DELETE请求以及如何执行此操作?

先感谢您!

javascript http http-delete reactjs axios

42
推荐指数
10
解决办法
7万
查看次数