当前位置:  开发笔记 > 后端 > 正文

如何在Classic ASP中将数据发布到远程URL?

如何解决《如何在ClassicASP中将数据发布到远程URL?》经验,为你挑选了2个好方法。

我需要POST在脚本中间的数据到URL.

    用户填写表格:

    表单提交到process.asp:此时我需要将POST数据发送到第三方集成.

    process.asp 完成并指导用户感谢您的页面.

John Rose.. 31

我不确定为什么每个人都在发布ASP.Net解决方案,当你明确表示你正在使用ASP"经典"时.

这样的事情应该有效.我没有写代码; 我在别处找到了它.但是,如果您不想购买商业广告,则可以使用MSXML2.ServerXMLHTTP对象.

function getHTML (strUrl)
    Set xmlHttp = Server.Createobject("MSXML2.ServerXMLHTTP")
    xmlHttp.Open "GET", strUrl, False
    xmlHttp.setRequestHeader "User-Agent", "asp httprequest"
    xmlHttp.setRequestHeader "content-type", "application/x-www-form-urlencoded"
    xmlHttp.Send
    getHTML = xmlHttp.responseText
    xmlHttp.abort()
    set xmlHttp = Nothing   
end function 

您可能需要添加一些错误处理代码,以便在生产环境中使用.我相信如果遇到404或超时错误,该对象会抛出错误.您需要通过在.Send之前设置On Error Resume Next来"捕获"它们的ASP样式(yuck),然后检查ASP错误对象以查看是否存在问题.

祝好运!



1> John Rose..:

我不确定为什么每个人都在发布ASP.Net解决方案,当你明确表示你正在使用ASP"经典"时.

这样的事情应该有效.我没有写代码; 我在别处找到了它.但是,如果您不想购买商业广告,则可以使用MSXML2.ServerXMLHTTP对象.

function getHTML (strUrl)
    Set xmlHttp = Server.Createobject("MSXML2.ServerXMLHTTP")
    xmlHttp.Open "GET", strUrl, False
    xmlHttp.setRequestHeader "User-Agent", "asp httprequest"
    xmlHttp.setRequestHeader "content-type", "application/x-www-form-urlencoded"
    xmlHttp.Send
    getHTML = xmlHttp.responseText
    xmlHttp.abort()
    set xmlHttp = Nothing   
end function 

您可能需要添加一些错误处理代码,以便在生产环境中使用.我相信如果遇到404或超时错误,该对象会抛出错误.您需要通过在.Send之前设置On Error Resume Next来"捕获"它们的ASP样式(yuck),然后检查ASP错误对象以查看是否存在问题.

祝好运!


UserAgent并不总是多余的 - 根据它,您实际上可能会在响应中获得不同的内容.

2> AnthonyWJone..:

大多数表单操作页面都接受数据作为POST.

Function postFormData(url, data)
    Dim xhr : Set xhr = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
    xhr.open "POST", url, false
    xhr.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    xhr.send Data
    If xhr.Status = 200 Then
       postFormData = xhr.ResponseText
    Else
        Err.Raise 1001, "postFormData", "Post to " & url & " failed with " & xhr.Status
    End If
End Function

在创建数据时,需要对数据值进行编码.由于ASPs Server.URLEncode方法只进行路径编码而不进行组件编码,因此需要用%2F替换/字符

Function URLEncodeComponent(value)
    URLEncodeComponent = Server.URLEncode(value)
    URLEncodeComponent = Replace(URLEncodeComponent, "/", "%2F")
End Function

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有