使用最新的 Drupal 6 和 Services 3.x 模块,并配置了 REST 服务器。创建了一个名为“test”的新内容类型,不需要 cck 字段,删除了 body 字段。我已经看到了几个使用相同方法测试 REST 服务的示例。
可以从 VBA 将其获取到 GET 和 DELETE 节点,但它不会 POST 或 PUT(创建或更新)。已阅读数十页和有关此的问题,REST 服务器配置似乎不错,VBA 提交似乎不错。
Dim MyURL as String
MyURL = "http://example.com/rest/node?node[type]=test&node[title]=newtestnode"
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
With objHTTP
.Open "POST", MyURL, False
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.send (MyURL)
End With
POST 和 PUT 上返回的状态是“未经授权:用户 0 “匿名”的访问被拒绝,响应为空。被拒绝的错误源自内部服务模块。
我已经验证匿名可以通过浏览器创建这种类型,并且我可以从 VBA 中删除,所以我确定我的权限和设置是有序的。我从 PHP、Perl、Java、Ruby 中找到了许多示例,但没有从 Excel VBA 中找到。我还在另一个服务器和 drupal 网站上对此进行了测试,结果都一样。服务问题队列没有这样的东西。
不能做吗?非常令人沮丧!