World Of Webmaster
Đăng nhập / Đăng ký
Account
Free for web
Check pagerank
Input check pager (Not http://)

Ext: blog.kai.vn
Check google pagerank
View HTML source
TOPIC
ASP - lấy thông tin, nội...
Trong bài trước tôi đã giới thiệu phương pháp sử dụng các hàm trong PHP để lấy thông tin từ website khác. Bài này tiếp tục giới thiệu các bạn phương pháp lấy nội dung từ một URL khác cho nhiều mục đích khác nhau của bạn.
›› ASP - lấy thông tin, nội dung từ website khác
Post by : boing - Post time: 01/01/2010 - Edit time : 10/05/2010
View : 2184 - Comment : 0
Tags: asp  get content  MSXML2ServerXMLHTTP  0x80072EE7  XML   

Bạn có thể lấy nội dung dạng text bằng cách sử dụng các component AspHTTP, ASPTear 1.50, hoặc VB's built in InetCtrls. Bài này trình bày đầy đủ cách sử dụng XMLHTTP để lấy thông tin từ một remote URL.

Đoạn code dưới đây sử dụng MSXML cài đặt trên Win2000, nếu bạn có các phiên bản mới hoặc củ hơn, lưu ý đến địa chỉ tham chiếu trong các dòng lệnh dưới đây. 

<% 
  url = "http://www.espn.com/main.html" 
  set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP") 
  xmlhttp.open "GET", url, false 
  xmlhttp.send "" 
  Response.write xmlhttp.responseText 
  set xmlhttp = nothing 
%>

xmlhttp.responseText là kết quả đọc được từ remote url www.espn.com/main.html. Nếu url không tồn tại, hoặc bạn đang chạy trên proxyserver, hoặc bị tường lửa ngăn chặn..., mã lỗi bên dưới sẽ được trả về:

  msxml4.dll (0x80072EE7)
  Server name or address could not be resolved

Chú ý rằng, nếu bạn sử dụng trực tiếp nội dung được trả về để in ra kết quả, những link đến image, stylesheet, javascript trong remoteURL có thể là những link tương đối nên khi response.write xmlhttp.responseText sẽ không hiển thị đúng nội dung từ trang remoteURL. Ví dụ để hiển thị đúng nội dung trong trang espn.com/main.html, bạn phải thêm base href như đoạn code bên dưới:

&lt;%
  url = "http://www.espn.com/main.html"
  ' add a BASE HREF tag
  Response.write "<BASE HREF='" & url & "'>"
  set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
  xmlhttp.open "GET", url, false
  xmlhttp.send ""
  Response.write xmlhttp.responseText
  set xmlhttp = nothing
%> 

Nếu bạn muốn lấy thông tin sau khi sử dụng post method, tức là gửi một thông tin vào form và lấy kết quả trả về từ trang sau đó, bạn có thể thêm vào header của xmlhttp theo cách sau: 

<% 
  url = "http://www.espn.com/main.html" 
  set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP") 
  xmlhttp.open "POST", url, false 
  xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
  xmlhttp.send "username=abcde&relname=boingonline" 
  Response.write xmlhttp.responseText 
  set xmlhttp = nothing 
%>

trong đó: username=abcde là giá trị của trường username, relname=boingonline là giá trị của trường relname.

Một vấn đề nữa đặt ra, không phải lúc nào phía remoteURL cũng trả về kết quả, ví dụ như url bị ẩn, server phía remote bị lỗi vv... Ta phải bắt hết các lỗi đó và xữ lý chúng để tạo ra giao diện thân thiện với người dùng hoặc xữ lý theo cách riêng của mình. Dưới đây là một số lỗi thường gặp.

<% 
  'deliberate typo: 
  url = "http://www.espn.co/main.html" 

  set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP") 
  on error resume next 
  xmlhttp.open "HEAD", url, false 
  xmlhttp.send "" 
  status = xmlhttp.status 
  if err.number <> 0 or status <> 200 then 
     if status = 404 then 
        Response.Write "Page does not exist (404)." 
     elseif status >= 401 and status < 402 then 
        Response.Write "Access denied (401)." 
     elseif status >= 500 and status <= 600 then 
        Response.Write "500 Internal Server Error on remote site." 
     else 
        Response.write "Server is down or does not exist." 
     end if 
  else 
    Response.Write "Server is up and URL is available." 
  end if 
  set xmlhttp = nothing 
%>

nguồn: classicasp.aspfaq.com

>> Lấy thông tin từ website khác

Ý kiến cho bài này (0) [ Hide ]
Những bài viết liên quan:
Xác định quốc gia truy cập vào website thông qua IP - detect country visit website by IP
Sử dụng API của bit.ly để rút ngắn URLs của poster (URL shortening)
Ajax file upload - upload file bằng ajax đơn giản
Email Class PHP - Gửi Email bằng Gmail SMTP server
Tutorial ›› Code | Webdesign tutorial | Experience |
Page : 860880
Online :
Visited : 391642
 
Liên h | Thêm vào Favorite | Gửi link qua e-mail | Thông tin website
Copright © 2009 KAI Blog
Code by BOINGOnline. Contact email : contact@kai.vn
Theme: default | classic |