ServerXMLHTTP问题

xiaoduan0115 2012-09-27 10:02:21
各位好,用ServerXMLHTTP 发送参数接收的问题
setRequestHeader "Content-type", "text/xml" 这样设置接收页面接到的是空值
setRequestHeader "Content-type", "application/x-www-form-urlencoded" 这样设置接收页面可以正常接收值


发送参考代码
send_mid_str="key=123&id=123456"
Set http=Server.CreateObject("MSXML2.ServerXMLHTTP")
http.Open "POST","http://localhost/a.asp",false
http.setTimeouts 5000,5000,5000,10000
http.setRequestHeader "Content-type", "text/xml"
'字串转义
request_string = URLEncoding(send_mid_str)
Http.send(request_string)
if Http.readystate<>4 then
response.write "提交到目标服务器出错!"
else
retu_str=bytesToBSTR(http.responseBody,"UTF-8")
end if
set http=nothing
Response.write retu_str

接收参考代码 a.asp
key=Request("key")
id=Request("id")
Response.write "key="&key&"id="&id


发送代码的程序不能修改,现在就是接收页面需要如何修改才能在setRequestHeader "Content-type", "text/xml" 设定情况下接收到值,谢谢各位了
...全文
78 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoduan0115 2012-09-27
  • 打赏
  • 举报
回复
可以了,真的是非常感谢,这个问题几天都没有处理好。
Go 旅城通票 2012-09-27
  • 打赏
  • 举报
回复
指定content-type为application/x-www-form-urlencoded【post】或者将参数加载url后面【get】才会生成键值对,使用request对象获取

设置成其他不会生成键值对,只能靠读取2进制流生成字符串,然后解析字符串得到需要的键值对

Function  BytesToBstr(strBody,CodeBase) '需要将2进制流数据写入adodb.stream后生成字符串
dim obj
set obj=Server.CreateObject("Adodb.Stream")
obj.Type=1
obj.Mode=3
obj.Open
obj.Write strBody
obj.Position=0
obj.Type=2
obj.Charset=CodeBase
BytesToBstr=obj.ReadText
obj.Close
set obj=nothing
End Function

v=BytesToBStr(Request.BinaryRead (Request.TotalBytes),"gb2312")'注意编码
arr=split(v,"&")
key=split(arr(0),"=")(1)
id =split(arr(1),"=")(1)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧