2012-07-09 130 views
10

我们有如下因素链接:http://mvp.sos.state.ga.us/如何使用MSXML2.ServerXMLHTTP从其他站点获取数据?

而不是创建一个数据库复制信息MVP页,我们想用我们自己的形式,然后在幕后,将信息发送到网站上面,得到的结果回来使用名为MSXML2.ServerXMLHTTP的组件。

不幸的是,我对这个组件或如何使用它一无所知。

是否有人会友好地请给我指点如何使用我们自己的...发送信息到上面的网站,并得到结果回到我们的形式?

我们基本上是想让用户输入第一个姓,名,县,出生日期。

感谢

回答

22

你可以使用像 “POST” HTTP的请求这个组件, “GET”, “删除” 等

创建对象:

<% 
    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”该发送方法转到在键 - 值对参数格式,如:键1 =值&键2 =值&所以=上...或任何其他数据,如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 
%> 
+1

此代码已损坏。在将方法作为语句进行调用时不应进行派生类。此外,“POST”示例应该设置Content-Type标题。 – AnthonyWJones 2012-07-09 12:02:16

+0

鉴于我正试图从用asp.net构建的网站获取数据,这仍然有可能吗? – 2012-07-09 18:59:19

+0

@AnthonyW琼斯在一个点上你是对的,但没有。我正在使用JScript Asp页面,因此此代码对于JScript asp但VBScript有效。无论如何,我会编辑答案,并删除偏见。 – htbasaran 2012-07-09 19:52:23