问题标签 [put]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
729 浏览

get - S3 - 最终一致性和多个客户端

如果我在 S3(美国东部)中放置一个对象,然后重复请求该对象的元数据直到我可以 GET 它,那么此时我是否保证所有其他客户端现在都可以获取该对象?或者是否有可能另一个客户端的请求以某种方式路由到尚未注册 PUT 的不同服务器?我试图了解最终一致性的后果,特别是在一个客户端能够获取的情况下。

0 投票
1 回答
9520 浏览

iis-7 - 在 IIS 7.5 上为使用 Windows 身份验证的 ASHX 处理程序启用 PUT

我有一个使用 http PUT 作为 .ashx 通用处理程序的 ASP.NET (.NET 4) 网站。PUT 调用源自 Silverlight 前端。在我的本地机器(Cassini Web 服务器)上的 VS 2010 中所有工作。

然后我部署到一个 IIS7.5 Win Server 2008 R2 盒子。

silverlight/网站很好,但是对 .ashx 处理程序的 PUT 调用会遇到 Windows 登录提示。
这是一个本地 Intranet,因此 Windows 身份验证(使用 NTLM 和协商提供程序)是唯一启用的身份验证。

然后我读到这个:http: //blogs.msdn.com/b/joseph_fultz/archive/2009/07/23/enabling-the-put-verb-with-handlers-and-iis-7-0.aspx

我听从了他的建议,现在可以通过我的 .ashx 处理程序进行 PUT 调用。问题是只有 Web 服务器管理员组中的人员才能执行此操作。没有其他人可以。他们会遇到 Windows 登录提示。

知道这可能是什么吗?

我无法授予公司网络服务器上的每个人的管理员权限。毫无疑问,他们会砍掉我的一只手,在我面前吃掉我说的那只手,然后带我开门。

0 投票
2 回答
535 浏览

http - OpenRasta 无法正确反序列化 PUT 上的实体

在 OpenRasta 处理程序中处理 HTTP PUT 时,我遇到了一些非常奇怪的行为。处理程序方法签名如下所示:

这是相关的ResourceSpace配置:

CustomerForm看起来像这样:

ContactInfo看起来像这样:

我的问题是当CustomerFormPUT 到服务器时,OpenRasta 无法正确反序列化它。尽管它是从客户端成功发送的,但它的作用是用一ContactInfo组反序列化它。null我什至深入研究IRequest.Entity.Stream以确保我需要的 XML 确实存在,它是:

当方法中接收到的反序列化对象不包含时,如何IRequest.Entity.Stream包含必要的数据?我有确保序列化和反序列化完美工作的测试,我什至有一个完全相同的处理程序也可以工作。只是当 HTTP 方法为 PUT 时,它已设置为.CustomerFormPut(CustomerForm)Post(CustomerForm)CustomerFormContactInfonull

我已经彻底阅读了 OpenRasta 的调试输出,它说的是:

我发现的唯一奇怪之处是在这一步之后 aMissingMethodException被抛出FirstChanceException(但从不冒泡),但是它的堆栈跟踪太短了,我不知道问题可能是什么:

我不知道为什么 aMissingMethodException被抛出以及为什么如果我不订阅该AppDomain.FirstChanceException事件它不会冒泡,但这可能与为什么 myCustomerForm没有正确反序列化有关。但是,由于它确实在 HTTP POST 上正确反序列化,我对此表示怀疑。

想法?

0 投票
2 回答
566 浏览

file - 使用 YUI3 将文件上传到 RESTful PUT url

我正在尝试使用 YUI3 将文件上传到 RESTful PUT url,但是当我在 io 的配置中将上传设置为 true 时,它​​会将文件作为 POST 而不是 PUT 发送。如果我删除配置中的上传设置,我只会得到文件名,但它确实会转到 PUT url。我可以将 PUT 与文件上传一起使用吗?还有另一种方法可以做到这一点吗?我假设这是 YUI3 中的故障/故障,或者更确切地说是我对它的使用。

非常感谢任何帮助。

我还尝试找到一个使用 javascript 读取文件内容然后将其推送到 PUT 数据中的资源,但我似乎找不到任何相关信息。有谁知道这是否可能?

干杯,安迪。

0 投票
2 回答
718 浏览

rest - REST - GET 返回与 POST/PUT 不同的结果

在我们的项目中,可以通过 POST 或 PUT 请求发送书籍结构(XML、JSON 等)来添加书籍。例如,在 XML 中,书本结构如下所示(简化):

当这本书插入我们的后端数据库时,会自动添加一些自动生成的属性,例如创建日期、提交该书的用户 ID、标识符、...

当通过 GET 检索图书时,这些附加属性包含在图书定义中:

这基本上意味着新书/编辑书(= 从客户端到服务器)的 XML 方案与检索到的书(= 从服务器到客户端)不同。这使事情变得混乱。

一种可能是使这些附加属性在不同的 URI 中可用,例如:

这种方法的一个缺点是需要两个单独的请求来获取所有数据。

您将如何解决这种不一致?

0 投票
15 回答
99721 浏览

iis - IIS 7.5 + 为 RESTFul 服务启用 PUT 和 DELETE,无扩展

我试图了解 IIS 7.5 如何处理 POST 和 PUT 请求。

我正在使用 OpenRasta 框架编写一个 RESTful 服务。POST 操作没有任何问题,但相同 URL 的 PUT 操作没有。它返回如下错误

网址是这样的“http://localhost/MyService/Resource.Something.manifest”

相同的设置在 Visual Studio 开发 IIS 中运行良好。

解决方案

基本上默认的 ExtensionlessUrlHandler 不接受 PUT 和 DELETE 动词。只需要添加它们。

0 投票
1 回答
386 浏览

android - 在 java/Android 中使用 HTTP PUT 创建文件时没有文件创建/修改日期

我正在开发一个使用 HTTP PUT 读取/写入无线设备的 android 应用程序。

有没有办法设置由 HTTP PUT 创建的文件的创建/修改日期和时间属性,因为目前文件创建良好但没有属性(创建日期时间、修改日期时间。

如果您需要一些代码片段,请告诉我。(不确定有什么帮助)

这可能是设备的后备,即设备负责将这些属性添加到文件中吗?

我试过在网上搜索,但这个问题很难用 1 行/几句话来解释 :)

提前致谢。

编辑:为了澄清,我试图编写的文件已经存在,所以 HTTP PUT 只是覆盖它。(简单文本文件)。所以我只是传递一个 BYTEARRAY 实体来写入这个文件。但不知何故,在这个过程中,文件属性正在丢失。

编辑:以下是 uploadFile 代码片段。私人无效上传文件(字符串数据){

0 投票
3 回答
23808 浏览

php - 如何在服务器端访问 PHP REST API PUT 数据?

- 问题 -

我刚开始使用 REST API,我很困惑。

这就是我的 PHP cRUL 客户端对于 PUT 的样子。

现在,当我查看服务器时,我的 $_SERVER['REQUEST_METHOD'] 显示 PUT,但我的问题是如何获取使用 CURLOPT_POSTFIELDS 发送的 $data。

我需要做的就是将 $data 与 PUT 请求一起发送到下一行。喜欢

我在这个话题上看到了很多混乱,这让我很头疼。在 php 客户端似乎很容易,但没有人有适用于 php 服务器端的答案。

谢谢你的帮助!

-- 回答(在帮助和家庭作业之后) --

我是新手,所以直到 8 小时后我才能回答我自己的问题......奇怪:)

好的,在与这里的伟人一起工作之后,我不得不说我们遇到了答案。我很自责,因为它如此简单,同时又令人困惑。

第一个更改(上图)我必须在 $data 周围添加 http_build_query()。这将我的数据从一个数组转换为一个 url 友好的字符串。

接下来我不得不添加。

现在我可以做类似 $put['data'] 的事情了。

PaulPRO 上面给出的答案确实可以像 file_get_contents() 那样用更少的行来获取数据。我们被困在试图弄清楚如何解析数据的过程中,这是我在另一个网站上看到的 http_build_query() 的缺乏发挥作用的地方。

所以这就是一切的运作方式。

  1. 数据被放入一个普通的数组中。
  2. http_build_query() 将它转换成一个漂亮的几乎像 GET 的字符串。
  3. file_get_contents() 将其从客户端传输到服务器。
  4. parse_str() 然后将其转换回数组。

我看到很多关于使用 PUT 发送文件的消息。我可以看到这是如何工作的,但从我在整个 REST 过程中读到的内容来看,PUT 是更新数据,就像 post 是创建数据一样。也许我错了。我错过了什么吗?

0 投票
1 回答
1279 浏览

django - PUT 上的 OAuth 身份验证失败

我在我的项目中使用OAuth 。但我遇到了身份验证问题。

就是我可以通过“POST”方法而不是“PUT”方法通过Oauth的认证机制。POST 和 PUT 请求之间的唯一区别是方法类型。正文和标题是相同的。我使用的请求如下:

邮政

客户端是 OAuth 客户端。

服务器返回的错误信息是:

在此处输入图像描述

仅供参考:401未经授权

类似于 403 Forbidden,但专门用于身份验证可能但失败或尚未提供的情况

我正在使用 django 框架进行开发。

请求方法如下:

有人有想法吗?

0 投票
1 回答
3872 浏览

java - Android、HttpURLConnection、PUT 和 Authenticator

我之前也已经将 Authenticator 设置为:

我提供了正确的登录详细信息,但服务器以401代码响应。(不过,类似的 GET 请求有效。)除此之外,getPasswordAuthentication()在连接和写入流的过程中不会调用该方法。(我知道这一点是因为我输入了Log.v("app", "password here").)

这是为什么?