2012-07-09 35 views
10

Chúng tôi có liên kết folowing: http://mvp.sos.state.ga.us/Làm cách nào để sử dụng MSXML2.ServerXMLHTTP để lấy dữ liệu từ một trang web khác?

Thay vì tạo một db để sao chép thông tin trang MVP, chúng tôi muốn sử dụng biểu mẫu của chính chúng tôi, và sau hậu trường, gửi thông tin đến trang web ở trên để nhận kết quả sử dụng thành phần được gọi là MSXML2.ServerXMLHTTP.

Thật không may, tôi không biết gì về thành phần này hoặc cách sử dụng thành phần này.

Ai đó có thể tử tế, vui lòng cho tôi biết về cách sử dụng riêng của chúng tôi ... để gửi thông tin đến trang web ở trên và nhận kết quả về biểu mẫu của chúng tôi không?

Về cơ bản, chúng tôi đang cố gắng để người dùng nhập lần đầu tiên, họ, quận, ngày sinh.

Cảm ơn

Trả lời

22

Bạn có thể sử dụng thành phần này cho http-yêu cầu như "POST", "GET", "DELETE" vv

Để tạo đối tượng:

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

Để gửi dữ liệu bằng phương thức "NHẬN":

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

Lưu ý rằng Phương thức mở có 3 tham số: Phương thức HTTP, URL, cuộc gọi không đồng bộ.

Lưu ý rằng phương thức Gửi trên "GET" bỏ qua thông số của nó. (Trong trường hợp này, chúng tôi đang đi qua các thông số thông qua URL.)

Để gửi dữ liệu sử dụng phương pháp "POST":

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

Lưu ý cho "POST" rằng Gởi phương pháp truyền tham số trong cặp khóa-giá trị định dạng như: key1 = value1 & khóa2 = value2 & quá = on ... hoặc bất kỳ dữ liệu khác như XML, JSON, vv)

đây là những điều cơ bản của thành phần này. Nếu bạn cần thêm thông tin, bạn có thể kiểm tra microsoft's docs page.

Mã ví dụ để nhận các giá trị biểu mẫu và gửi chúng bằng cách sử dụng phương pháp đăng xmlhttp.

<% 
    ' 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

Mã này bị hỏng. Parantheses không nên được thực hiện khi gọi phương thức như báo cáo. Ngoài ra, ví dụ "POST" phải đặt tiêu đề Kiểu nội dung. – AnthonyWJones

+0

Cho rằng tôi đang cố gắng làm điều này để lấy dữ liệu từ một trang web được xây dựng với asp.net, điều này vẫn còn có thể? –

+0

@AnthonyWJones tại một thời điểm bạn có quyền nhưng không hề. Tôi đang làm việc với các trang JScript Asp để mã này là hợp lệ cho JScript asp nhưng VBScript. Dù sao tôi sẽ chỉnh sửa câu trả lời và gỡ bỏ các dấu ngoặc đơn. – htbasaran

Các vấn đề liên quan