【问题标题】:How do I use MSXML2.ServerXMLHTTP to grab data from another site?如何使用 MSXML2.ServerXMLHTTP 从另一个站点获取数据?
【发布时间】:2012-07-09 03:17:19
【问题描述】:

我们有以下链接:http://mvp.sos.state.ga.us/

与其创建一个数据库来复制 MVP 页面的信息,我们更愿意使用我们自己的表单,然后在幕后,使用名为 MSXML2.ServerXMLHTTP 的组件将信息发送到上面的站点以获取结果。

很遗憾,我对这个组件或如何使用它一无所知。

有人好心给我指点一下如何使用我们自己的...将信息发送到上面的站点并将结果返回到我们的表单中吗?

我们基本上是想让用户输入名字的首字母、姓氏、县、出生日期。

谢谢

【问题讨论】:

    标签: asp-classic serverxmlhttp


    【解决方案1】:

    您可以将此组件用于“POST”、“GET”、“DELETE”等 http 请求。

    创建对象:

    <%
        Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
    %>
    

    使用“GET”方法发送数据:

    <%
        objXML.Open "GET", "http://mvp.sos.state.ga.us/?some=querystring", false 
        objXML.Send ""
        Response.Write objXML.responseText
    %>
    

    注意Open方法有3个参数:HTTP方法、URL、异步调用

    请注意,“GET”上的 Send 方法会忽略其参数。 (在这种情况下,我们通过 URL 传递参数。)

    使用“POST”方法发送数据:

    <%
        objXML.Open "POST", "http://mvp.sos.state.ga.us/", false 
        objXML.Send "username=htbasaran&password=somepassword"
        Response.Write objXML.responseText
    %>
    

    注意“POST”,Send 方法以键值对格式传递参数,例如:key1=value1&key2=value2&so=on... 或任何其他数据,如 XML、JSON 等)

    这些是这个组件的基础。如果您需要更多信息,可以查看microsoft's docs page

    获取表单值并使用 xmlhttp post 方法发送它们的示例代码。

    <%
        ' getting form values
        my_uname = Request.Form("username")
        my_pword = Request.Form("password")
    
        ' creating object
        Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
    
        ' sending variables to an external site
        objXML.Open "POST", "http://www.sitename.com/login.asp", false
        objXML.Send "username=" & my_uname & "&password=" & my_pword
    
        ' Assuming that successful login will return response "Ok"
        ' writing the result to the client.
        if objXML.responseText="Ok" then
            Response.Write "Login Successful!"
        else
            Response.Write "Login Failed!"
        end if
    %>
    

    【讨论】:

    • 此代码已损坏。将方法作为语句调用时不应加上括号。 “POST”示例也应该设置 Content-Type 标头。
    • 鉴于我正在尝试这样做以从使用 asp.net 构建的站点获取数据,这仍然可能吗?
    • @AnthonyWJones 在某一时刻你是对的,但根本不是。我正在使用 JScript Asp 页面,因此此代码对 JScript asp 有效,但对 VBScript 有效。无论如何,我将编辑答案并删除括号。
    • @ChidiOkeh 是的,仍然可能,因为这个组件不关心源端使用了哪种技术,它只关心源端给定的结果。
    • 它似乎对我不起作用。也许我使用不正确。您能否举一个将表单字段发布到该链接的示例以及如何从中获取结果?
    猜你喜欢
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 2019-04-22
    • 2017-04-22
    • 1970-01-01
    相关资源
    最近更新 更多