标签: httprequest

DELETE Request Body的RESTful替代方案

虽然HTTP 1.1规范似乎允许DELETE请求上的消息体,但它似乎表明服务器应该忽略它,因为它没有定义的语义.

4.3消息正文

服务器应该在任何请求上读取和转发消息体; 如果请求方法不包含实体主体的定义语义,那么在处理请求时应该忽略消息主体.

我已经回顾了有关SO及其他内容的几个相关讨论,例如:

大多数讨论似乎都同意允许在DELETE上提供消息体,但通常不建议这样做.

此外,我注意到各种HTTP客户端库中的趋势,这些库中似乎记录了越来越多的增强功能,以支持DELETE上的请求主体.大多数图书馆似乎都有责任,尽管偶尔会有一些初步阻力.

我的用例要求在DELETE上添加一些必需的元数据(例如删除的"原因",以及删除所需的一些其他元数据).我已经考虑了以下选项,其中任何一个看起来都不合适,并且与HTTP规范和/或REST最佳实践内联:

  • 消息正文 - 规范表明DELETE上的消息体没有语义值; HTTP客户端不完全支持; 不是标准做法
  • 自定义HTTP - 需要自定义标头通常违反标准做法 ; 使用它们与我的其余API不一致,其中没有一个需要自定义标头; 此外,没有好的HTTP响应可用于指示错误的自定义标头值(可能是一个单独的问题)
  • 标准HTTP标头 - 没有标准标头是合适的
  • 查询参数 - 添加查询参数实际上会更改要删除的Request-URI; 违反标准做法
  • POST方法 - (例如POST /resourceToDelete { deletemetadata })POST不是删除的语义选项; POST实际上代表了所需的相反操作(即POST创建资源下属;但我需要删除资源)
  • 多个方法 - 将DELETE请求拆分为两个操作(例如,PUT删除元数据,然后删除DELETE)将原子操作拆分为两个,可能会留下不一致的状态.删除原因(和其他相关元数据)不是资源表示本身的一部分.

我的第一个偏好可能是使用消息体,第二个是自定义HTTP头; 但是,如上所述,这些方法存在一些缺点.

是否有任何与REST/HTTP标准一致的建议或最佳实践,以便在DELETE请求中包含此类必需的元数据?还有其他我没有考虑的替代方案吗?

rest http httprequest http-method

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

在Spring MVC中获取当前URL的最佳方法是什么?

我想根据客户端为活动请求使用的URL创建URL.有没有什么比采取当前HttpServletRequest对象更聪明,它的getParameter...()方法是重建完整的URL,包括(和仅)它的GET参数.

澄清:如果可能,我想退出使用HttpServletRequest对象.

url spring-mvc httprequest

85
推荐指数
5
解决办法
13万
查看次数

如何将HttpRequestBase转换为HttpRequest对象?

在我的ASP.NET MVC控制器中,我有一个需要一个HttpRequest对象的方法.我有权访问的只是一个HttpRequestBase对象.

无论如何我可以以某种方式转换这个?

我能做什么/应该做什么?

asp.net-mvc httprequest

84
推荐指数
5
解决办法
7万
查看次数

如何在POST表单上设置Header字段?

如何在提交表单时在POST标题中设置自定义字段?

html javascript post http-post httprequest

83
推荐指数
3
解决办法
14万
查看次数

PUT和DELETE HTTP请求方法的用处是什么?

我已经阅读了很多相关内容,但无法就此主题得出结论.

但我从未使用过PUT或DELETE HTTP Request方法.我倾向于在系统(我的应用程序或网站)的统计数据可能不受影响(如产品列表)时使用GET,并在受影响时使用POST(下订单).是不够还是我错过了什么?

http httprequest web-deployment web

83
推荐指数
3
解决办法
11万
查看次数

IIS请求超时ASP.NET操作

我在运行长操作时遇到IIS的请求超时.在我的ASP.NET应用程序处理数据的场景后面,但正在处理的记录数量很大,因此操作需要很长时间.

但是,我认为IIS超出了会话时间.这是IIS或ASP.NET会话的问题吗?

提前致谢

asp.net iis iis-6 httprequest

82
推荐指数
3
解决办法
16万
查看次数

Ruby发送JSON请求

如何在ruby中发送JSON请求?我有一个JSON对象,但我不认为我可以这样做.send.我必须有javascript发送表格吗?

或者我可以在ruby中使用net/http类吗?

用header - content type = json和body json对象?

ruby json httprequest

80
推荐指数
6
解决办法
11万
查看次数

Http Servlet请求在读取一次后丢失POST主体的参数

我正在尝试访问Java Servlet过滤器中的两个http请求参数,这里没什么新东西,但是很惊讶地发现参数已经被消耗了!因此,它在过滤器链中不再可用.

似乎只有在参数进入POST请求主体(例如表单提交)时才会出现这种情况.

有没有办法读取参数而不消耗它们?

到目前为止,我只找到了这个引用:使用request.getParameter的Servlet过滤器丢失了Form数据.

谢谢!

java parameters servlets httprequest servlet-filters

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

管理长时间运行的PHP脚本的最佳方法?

我有一个PHP脚本需要很长时间(5-30分钟)才能完成.为了防止重要,脚本使用curl从另一台服务器中抓取数据.这就是它花了这么长时间的原因; 它必须等待每个页面加载,然后再处理它并移动到下一页.

我希望能够启动脚本并让它完成,直到它完成,这将在数据库表中设置一个标志.

我需要知道的是如何在脚本运行完成之前结束http请求.另外,php脚本是最好的方法吗?

php apache curl httprequest

75
推荐指数
5
解决办法
9万
查看次数

如何在JAVA中创建异步HTTP请求?

我对Java很新,所以对某些人来说这似乎是显而易见的.我在ActionScript上做了很多工作,这是基于事件的,我很喜欢.我最近尝试编写了一小部分执行POST请求的Java代码,但我遇到了一个问题,即它是一个同步请求,因此代码执行会等待请求完成,超时或出现错误.

如何创建异步请求,代码继续执行,并在HTTP请求完成时调用回调?我瞥了一眼线程,但我认为这太过分了.

java asynchronous httprequest

74
推荐指数
6
解决办法
13万
查看次数