将元素添加到scala.collection.mutable.Map的语法是什么?
以下是一些失败的尝试:
val map = scala.collection.mutable.Map
map("mykey") = "myval"
map += "mykey" -> "myval"
map.put("mykey","myval")
Run Code Online (Sandbox Code Playgroud) 我们有这个有web服务组件的软件.
现在,这个系统的管理员来找我,想要使用webservices组件将数据导入系统.
所以,我去阅读文档,试图找出这个东西,我看到这样的事情:
该文档提供了使用HTTP动词(如GET,POST,PUT,DELETE)与系统交互的示例.但在我有限的经验中,我从未发送过HTTP PUT或DELETE.
你怎么做呢?我已经构建了具有method ="post"或method ="get"的HTML表单,并且请求被发送到action属性中指定的任何内容(action ="someResource").但我真的不知道如何处理这个PUT的事情.
如果我不得不猜测,我将不得不构建一个创建某种HTTP Request对象的应用程序并设置它的所有属性,并以某种方式包含我想要PUT到RESOURCE的数据(
我以为我是一名网络开发人员,因为我知道像XHTML,CSS,JavaScript等等,但它开始看起来像我根本不知道任何关于网络的基础(HTTP).
PS:我主要用.net编程.所以,.net中的任何例子都会非常棒.
我正在尝试使用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;
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用PHP PEAR,但结果相同.问题是存储库说没有设置元数据.我真的需要帮助!谢谢!
我使用HTTP PUT方法编写了一个上传文件的服务.
Web浏览器不支持PUT,因此我需要一种测试方法.它可以很好地用作从浏览器访问它的POST.
更新:这是有效的.我尝试了海报,但它与使用提琴手一样.您必须知道如何构建请求.卷曲处理问题.
curl -X PUT"localhost:8080/urlstuffhere"-F"file = @ filename"-b"JSESSIONID = cookievalue"
我试图了解IIS 7.5如何处理POST和PUT请求.
我正在使用OpenRasta框架编写RESTful服务.POST操作没有任何问题,但相同URL的PUT操作不会.它返回如下错误
Detailed Error Information
Module: IIS Web Core
Notification: MapRequestHandler
Handler: StaticFile
Error Code: 0x80070002
Run Code Online (Sandbox Code Playgroud)
网址如下"http://localhost/MyService/Resource.Something.manifest"
相同的设置在Visual Studio开发IIS中工作正常.
解
基本上默认的ExtensionlessUrlHandler不接受PUT和DELETE动词.只需要添加它们.
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
Run Code Online (Sandbox Code Playgroud) 我厌倦了以下模式:
value = map.get(key);
if (value == null) {
value = new Object();
map.put(key, value);
}
Run Code Online (Sandbox Code Playgroud)
当您使用嵌套贴图来表示多维结构时,此示例仅会覆盖要写入的额外代码的表面.
我确信存在某些地方可以避免这种情况,但我的谷歌搜索努力没有产生任何相关性.有什么建议?
我一直在努力为它构建一个Rest API,我一直在测试它,因为我从命令行使用curl这很容易进行CRUD
我可以从命令行成功进行这些调用
curl -u username:pass -X GET http://api.mysite.com/pet/1
curl -d '{"dog":"tall"}' -u username:pass -X GET http://api.mysite.com/pet
curl -d '{"dog":"short"}' -u username:pass -X POST http://api.mysite.com/pet
curl -d '{"dog":"tall"}' -u username:pass -X PUT http://api.mysite.com/pet/1
Run Code Online (Sandbox Code Playgroud)
上面的调用很容易从命令行生成,并与我的api工作正常,但现在我想使用PHP来创建卷曲.如您所见,我将数据作为json字符串传递.我已经阅读过,我认为我可以做POST并包含POST字段,但我无法找到如何通过GET传递http正文数据.我看到的一切都说你必须将它附加到网址上,但它在命令行表单上看起来并不那样.无论如何,如果有人能在一页上用PHP编写正确的方法来完成这四项操作,我会很高兴.我想看看用curl和php做最简单的方法.我想我需要通过http主体传递所有内容,因为我的php api用php://输入捕获所有内容
我在服务器中为客户端保留了键值存储.如果用户发送密钥"k1",那么我将其插入数据库.这是考虑POST
还是PUT
?
此外,我还有另一个操作,删除所有现有的密钥并添加新密钥.是这POST
还是PUT
因为它清除了记录并添加了新记录.
我正在通过Zend_Rest_Route使用Zend Framework构建RESTful api.对于文件上传,我应该使用PUT还是POST来处理这个过程?我试图尽可能地与REST动词的定义保持一致.请参考:PUT或POST:故事的REST
我理解这一点的方式是,当且仅当我更新指定资源的完整内容时,我才应该使用PUT.我必须知道PUT的确切URL.另一方面,如果我使用某种服务器端算法向服务器发送命令以创建指定资源的下级,我应该使用POST.
我们假设这是一个用于图像上传的REST API.这是否意味着我应该使用POST,如果服务器要操纵图像文件(即创建缩略图,调整大小等); 如果我只是将图像原始文件保存到服务器,请使用PUT?
如果我使用PUT来处理文件上传,那么流程应该如下:
我对这些东西很陌生; 所以希望我在这里有意义......
如果您知道"最佳"方式,请随时发表评论.
我正在尝试构建一个RESTful webapp,其中我使用GET,POST,PUT和DELETE.但我有一个关于在这个特定的应用程序中使用DELETE的问题.
先介绍一下背景:
我的webapp管理在另一个系统中也管理(并且,它发生,始终创建)的通用实体.因此,在我的webapp中,每个实体都将使用唯一键存储在数据库中.但我们通过URL访问它们的方式是使用其他系统的唯一键.
我想,一个简单的例子可以说明这一点.拿URL /entity/1
.这将显示其他系统中 ID为1的实体的信息,而不是我自己的系统.实际上,我系统中的ID将被完全隐藏.没有用于访问1
我自己系统中ID为ID的实体的URL方案.
好了,现在我们知道我的webapp是如何构建的,让我们回到删除那些实体.
将有一种方法可以在我的系统中"删除"实体,但我在其周围加上引号,因为它实际上不会从数据库中删除它们.相反,它会标记它们的属性,以防止它出现时出现/entity/1
.
因此,我觉得我应该使用PUT
(以这种方式'删除'将是幂等的),因为从数据的角度来看,我只是设置一个属性.
所以,问题是:RESTful方法是否对数据具有保真度(在这种情况下很明显我PUT
正在进行),或者应用程序中数据的表示(在这种情况下,我似乎DELETE
正在进行)?