我正在使用ServerXMLHTTP来执行HTTP POST.返回的响应是重定向(具体为303见其他).ServerXMLHTTP会自动跟随此重定向,但这会导致身份验证失败,因为它不会传播原始请求的Authorization标头.
有没有办法可以阻止自动重定向(或者确保重新发送Authorization标头)?
我必须在经典ASP中使用XMLHttp对象,以便通过HTTP从服务器到服务器将一些数据发送到另一台服务器:
sURL = SOME_URL
Set oXHttp = Server.CreateObject("Msxml2.XMLHTTP")
oXHttp.open "POST", sURL, false
oXHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded;charset:ISO-8859-1;"
sPost = SOME_FORM_DATA
oXHttp.send(sPost)
Run Code Online (Sandbox Code Playgroud)
我被告知(由消费服务器的维护者),根据我是否使用来自Windows Server 2000(IIS 5)或Windows Server 2003(IIS 6)的代码,他获得了Latin-1(Windows 2000 Server)或UTF-8(Windows Server 2003)编码数据.
我没有找到任何属性或方法来设置我必须发送的数据字符集.它是否依赖于某些Windows配置或脚本(asp)设置?
我的网站现在纯粹以UTF-8工作,但为了使用serverXMLHTTP发送短信,我需要在发送之前将我的消息从UTF-8转换为ISO-8859-1.
情况与此并行:
a.asp:
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head><body>
<form method="post" action="b.asp">
<input type text name="message" value="æøå and ÆØÅ"><br>
<input type=submit>
</body>
Run Code Online (Sandbox Code Playgroud)
然后是b.asp
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head><body>
<%=konvert(request("message"))%><br>
</body>
<%
Function Konvert(sIn)
Dim oIn : Set oIn = CreateObject("ADODB.Stream")
oIn.Open
oIn.CharSet = "UTF-8"
oIn.WriteText sIn
oIn.Position = 0
oIn.CharSet = "ISO-8859-1"
Konvert = oIn.ReadText
oIn.Close
End Function
%>
Run Code Online (Sandbox Code Playgroud)
在这个展示中,我希望在b.asp中看到相同的字符串,因为我发送了一个a.asp,但是我得到了这个:
æøå and ÆØÅ
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在将ASP网页的两面写到ASP网页对话中,其中原始网页将信息推送到接收网页,接收网页然后处理它并发回响应.原始网页必须使用以下代码开始对话:
url = "www.receivingwebsite.com\asp\receivingwebpage.asp
information = "UserName=Colt&PassWord=Taylor&Data=100"
Set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "POST", url, false
xmlhttp.setRequestHeader "Content-Type", "text/xml"
xmlhttp.send information
Run Code Online (Sandbox Code Playgroud)
...然后以某种方式接收页面中的ASP代码必须能够看到发送的信息.我已经尝试了我能想到的一切.信息不在请求对象querystring或表单数组中(因为内容类型是text/xml),我尝试将整个请求对象domdocument通过其load()和/或loadxml()方法传递给它.
无论我做什么,我都找不到信息,但我知道它正在被发送,因为当我更改内容类型时application/x-www-form-urlencoded,我可以在request.form数组中看到它.
那么当内容类型是text/xml什么时,我的信息在哪里?
我收到间歇性的"msxml3.dll错误'80070005'访问被拒绝." 错误.该对象始终回发到同一个域.我不知道为什么它有时会起作用,为什么它会在其他时候失败.这是经典ASP - VBScript
set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.open "POST", "http://xxxx.com/GetCacheValue.aspx", false
xmlhttp.send ""
strCaptchaText = xmlhttp.responseText
set xmlhttp = nothing
Run Code Online (Sandbox Code Playgroud) 有人能告诉我为什么我没有得到回应吗?
<%
RssURL = "https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=nrcGOV"
Set xmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlHttp.setProxy 2, "www.proxy.mydomain.com:80"
xmlHttp.Open "Get", RssURL, false
xmlHttp.Send()
myXML = xmlHttp.ResponseText
myXMLcode = xmlHttp.ResponseXML.xml
response.Write(myXML)
response.Write(myXMLcode)
response.Write("hey")
%>
Run Code Online (Sandbox Code Playgroud)
我正在尝试从 twitter api 获取 rss feed xml 到我的服务器上,在那里我可以使用客户端代码对其进行操作。有人可以告诉我为什么我没有使用此代码获取提要吗?