【发布时间】:2015-01-09 20:57:33
【问题描述】:
我刚开始在 VBA 中使用 MSXML2.XMLHTTP 对象,我正在尝试与我们的内容服务器交互(创建、移动、复制、删除文件)。
我在互联网上找到了一些随机的工作代码,但我仍然不完全理解发生了什么。
Set req As New MSXML2.XMLHTTP
req.Open "MKCOL", "https://company/dav/nodes/" & URIsource & "/" & Encoded_FolderName, False
req.SetRequestHeader "Content-Type", "text/xml"
req.Send
URIsource 是来自服务器的 objID(即:12345678)
Encoded_Foldername 是传递给这个名为 URLEncode 的函数的文件夹名称 here
来自 OpenText website 我觉得我应该说:
req.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
但它不适用于我的代码。我必须使用前一个。
我还有一个复制文件的功能,它使用:
req.setRequestHeader "Destination", strDestURL
我应该如何知道使用什么 Requestheader?是否有用于发布、放置、获取等的列表?我知道“Content-Type”是用来确保服务器理解请求的,但就是这样。
谢谢
【问题讨论】:
-
来自 Wiki:内容类型:text/html; charset=utf-8 是 Response 字段, Content-Type: application/x-www-form-urlencoded 是 Request 字段,两个都发正常吗?以一种格式提问并以另一种格式接收答案?
-
是的,请求和响应是不同的消息,可以有不同的
Content-Types。该值应该是一个media type,它描述了当前消息中包含任何内容时的正文内容。对于 XHR,正文内容是.Send的可选参数。您提到的两种格式是提交<form method="post">的典型格式——请求发送表单的值,响应发送回更新的标记。 -
我只是觉得这很复杂..我在互联网上看到了很多示例,但我无法修改它们以与我们的服务器一起使用。有些做 objHTTP.open "POST", ServerURL, false 然后 ObjHTTP.send postdata ...有些似乎只直接打开文件并做一个空的 .send
标签: javascript vba xmlhttprequest