Vbscript 如何发送MSXML2.ServerXMLHTTP POST并避免转义\字符?
我使用的API(特别是MadMiMi的Mailer API)要求我执行HTTP post并发送YAML字符串作为发布的变量之一 我执行POST的尝试正在工作,也就是说,POST已经完成,并且在API端被接收。问题是YAML字符串中的Vbscript 如何发送MSXML2.ServerXMLHTTP POST并避免转义\字符?,vbscript,asp-classic,yaml,Vbscript,Asp Classic,Yaml,我使用的API(特别是MadMiMi的Mailer API)要求我执行HTTP post并发送YAML字符串作为发布的变量之一 我执行POST的尝试正在工作,也就是说,POST已经完成,并且在API端被接收。问题是YAML字符串中的\n元素将\转义,因此 ...\n... 它被张贴为 ...\\n... Maming YAML字符串在预期语法方面无效 YAML字符串应如下所示: --- \nvar1:somedatahere\nvar2:someotherdatahere\n 但现在收到的
\n
元素将\
转义,因此
...\n...
它被张贴为
...\\n...
Maming YAML字符串在预期语法方面无效
YAML字符串应如下所示:
--- \nvar1:somedatahere\nvar2:someotherdatahere\n
但现在收到的是:
--- \\nvar1:somedatahere\\nvar2:someotherdatahere\\n
我的问题是如何让POST请求不转义\
字符
我已尝试使用%5c
,以及\
字符的Chr()
代码,并尝试添加/删除:
httpRequest.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
只是想看看它的存在或不存在是否产生了任何明显的差异,但根本没有真正的变化。(我现在已经删除了这一行,因为我几乎可以肯定这不是用例中需要的东西)
以下是我正在使用的代码的完整post部分:
Dim data, httpRequest, postResponse
data = "username=*************"
data = data & "&api_key=******************"
data = data & "&promotion_name=*******"
data = data & "&cc=emailaddress1@emailaddress1.com"
data = data & "&recipient=emailaddress2@emailaddress2.com"
data = data & "&subject=My Subject Line Here"
data = data & "&from=emailaddress3@emailaddress3.com"
data = data & "&body=--- \nvar1:"& myvariable1 & "\nvar2:"& myvariable2 & "\n"
Set httpRequest = Server.CreateObject("MSXML2.ServerXMLHTTP")
httpRequest.Open "POST", "https://api.madmimi.com/mailer", False
httpRequest.Send data
postResponse = httpRequest.ResponseText
在双引号内传递
数据
似乎可以解决问题
data = """" & data & """"
httpRequest.Send data
(还必须使用httpRequest.SetRequestHeader“Content-Type”,“application/x-www-form-urlencoded
来测试这一点)
从
字符串(标量)通常不带引号,但可以用
双引号(“),或单引号(”)。在双引号内,
特殊字符可以用C样式的转义序列表示
以反斜杠(\)开头
您可以在此处使用在线解析器进行检查:在双引号内传递
数据似乎可以解决问题
data = """" & data & """"
httpRequest.Send data
(还必须使用httpRequest.SetRequestHeader“Content-Type”,“application/x-www-form-urlencoded
来测试这一点)
从
字符串(标量)通常不带引号,但可以用
双引号(“),或单引号(”)。在双引号内,
特殊字符可以用C样式的转义序列表示
以反斜杠(\)开头
您可以在此处使用联机解析器进行检查:是否尝试使用文字换行而不是转义序列\n
<代码>“&body=--”&vbLf&“var1:&…”
@AnsgarWiechers感谢您整理我的帖子/问题——很抱歉出现格式问题。我尝试了vbLf,也尝试了vbCrLf,但都不起作用。您是否尝试使用文字换行而不是转义序列\n
<代码>“&body=--”&vbLf&“var1:&…”@AnsgarWiechers感谢您整理我的帖子/问题——很抱歉出现格式问题。我试过vbLf,也试过vbCrLf,但都不起作用。