Questions tagged «put»

PUT是一种HTTP方法,它要求将封闭的实体存储在提供的URL下。

30
REST中的PUT与POST
根据HTTP / 1.1规范: 该POST方法用来请求原始服务器接受被附在请求由标识的资源的新下属实体Request-URI的Request-Line 换句话说,POST用于创建。 该PUT方法要求将封闭的实体存储在提供的之下Request-URI。如果Request-URI引用已存在的资源,则应将包含的实体视为原始服务器上资源的修改版本。如果Request-URIs指向现有资源,并且请求用户代理可以将该URI定义为新资源,则原始服务器可以使用该URI创建资源。” 即PUT用于创建或替换。 那么,应该使用哪一个来创建资源?还是需要同时支持两者?
5370 http  rest  post  put 


9
在REST API实际场景中使用PUT与PATCH方法
首先,一些定义: PUT在9.6节RFC 2616中定义: PUT方法请求将封闭的实体存储在提供的Request-URI下。如果Request-URI引用了已经存在的资源,则应将封闭的实体视为原始服务器上的资源的修改版本。如果Request-URI没有指向现有资源,并且请求用户代理能够将该URI定义为新资源,则原始服务器可以使用该URI创建资源。 PATCH在RFC 5789中定义: PATCH方法请求将在请求实体中描述的一组更改应用于由Request-URI标识的资源。 同样根据RFC 2616第9.1.2节, PUT是幂等的,而PATCH不是。 现在让我们看一个真实的例子。当我/users对数据执行POST {username: 'skwee357', email: 'skwee357@domain.com'}并服务器能够创建资源时,它将以201和资源位置(假设/users/1)响应,并且对GET的下一次调用/users/1将返回{id: 1, username: 'skwee357', email: 'skwee357@domain.com'}。 现在,让我们说我想修改我的电子邮件。电子邮件修改被视为“一组更改”,因此我应该/users/1使用“ 补丁文档 ”来进行修补。在我的情况下,它将是json文档:{email: 'skwee357@newdomain.com'}。然后,服务器返回200(假设允许)。这使我想到第一个问题: 补丁不是幂等的。它在RFC 2616和RFC 5789中是这样说的。但是,如果我发出相同的PATCH请求(使用我的新电子邮件),我将获得相同的资源状态(将我的电子邮件修改为请求的值)。为什么PATCH不那么幂等? PATCH是一个相对较新的动词(2010年3月引入RFC),用于解决“修补”或修改一组字段的问题。在引入PATCH之前,每个人都使用PUT来更新资源。但是在引入PATCH之后,我对PUT的用途感到困惑。这使我想到了第二个(也是主要的)问题: PUT和PATCH之间的真正区别是什么?我在某处读到了PUT可能用于替换特定资源下的整个实体,因此应该发送完整的实体(而不是像PATCH那样发送一组属性)。这种情况的实际实际用途是什么?您何时要替换/覆盖特定资源URI上的实体,为什么不考虑将此类操作更新/修补该实体?我在PUT上看到的唯一实际用例是在集合上发布PUT,即/users替换整个集合。引入PATCH之后,在特定实体上发布PUT毫无意义。我错了吗?
680 json  rest  http  put  http-method 






2
在PHP中使用cURL进行RAW POST
如何使用cURL在PHP中进行RAW POST? 未经处理的原始帖子没有任何编码,我的数据存储在字符串中。数据应采用以下格式: ... usual HTTP header ... Content-Length: 1039 Content-Type: text/plain 89c5fdataasdhf kajshfd akjshfksa hfdkjsa falkjshfsa ajshd fkjsahfd lkjsahflksahfdlkashfhsadkjfsalhfd ajshdfhsafiahfiuwhflsf this is just data from a string more data kjahfdhsakjfhsalkjfdhalksfd 一种选择是手动编写要发送的整个HTTP标头,但这似乎不太理想。 无论如何,我是否可以仅将选项传递给curl_setopt(),这些选项说使用POST,使用文本/纯文本以及从中发送原始数据$variable?
126 php  post  curl  put 

13
如何使用BODY快速发送POST请求
我正在尝试使用Alamofire快速发布尸体的发布请求。 我的json主体看起来像: { "IdQuiz" : 102, "IdUser" : "iosclient", "User" : "iosclient", "List":[ { "IdQuestion" : 5, "IdProposition": 2, "Time" : 32 }, { "IdQuestion" : 4, "IdProposition": 3, "Time" : 9 } ] } 我正在尝试使let listNSDictionnary看起来像: [[Time: 30, IdQuestion: 6510, idProposition: 10], [Time: 30, IdQuestion: 8284, idProposition: 10]] 我使用Alamofire的请求如下所示: …
97 json  swift  put  alamofire 


4
PHP cURL HTTP PUT
我正在尝试使用cURL创建一个HTTP PUT请求,但无法使其正常工作。我已经阅读了许多教程,但没有一个真正起作用。这是我当前的代码: $filedata = array('metadata' => $rdfxml); $ch = curl_init($url); $header = "Content-Type: multipart/form-data; boundary='123456f'"; curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array($header)); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($filedata)); $returned = curl_exec($ch); if (curl_error($ch)) { print curl_error($ch); } else { print 'ret: ' .$returned; } 我也尝试使用PHP …
75 php  rest  curl  put  http-put 

11
您如何进行HTTP Put?
我们拥有带有Web服务组件的软件。 现在,这个系统的管理员来找我,想通过使用webservices组件将数据导入到系统中。 因此,我去阅读了文档,试图弄清楚这件事,并且看到了这样的事情: 单击此处查看我在说什么(在Firefox,Chrome和Safari浏览器中效果最好) 该文档提供了使用HTTP动词(例如GET,POST,PUT,DELETE)与系统进行交互的示例。但是以我有限的经验,我从来没有发送过HTTP PUT或DELETE。 你怎么做呢?我建立了具有method =“ post”或method =“ get”的HTML表单,并将请求发送到action属性中指定的任何内容(action =“ someResource”)。但是我真的不知道该怎么做。 如果我不得不猜测,我将不得不构建一个应用程序,该应用程序创建某种HTTP Request对象并设置其所有属性,并以某种方式包括我要放入RESOURCE的数据(我正在尝试使用REST术语,这对我来说是很新的)。然后,我将使用我的编程语言发送请求,等等等等。我只是在猜测。请提供一些帮助! 我以为自己是一名Web开发人员,因为我了解诸如XHTML,CSS,JavaScript等之类的东西,但是开始看起来我对Web(HTTP)的基础一无所知。 编辑 PS:我主要使用.net进行编程。因此,.net中的任何示例都将非常出色。
68 xml  web-services  http  rest  put 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.