30/09/2018, 22:03
Lấy đồng thời link redirect và html của 1 url?
Vấn đề là e có 2 file
a.php
echo 'Text A'; header('location: b.php');
b.php
echo 'Text B';
vấn đề là e muốn lấy html và link b.php từ file a.php (mục đích là để nếu có xuất hiện chuyển hướng thì load xong file a.php sẽ load tiếp file b.php)
- nếu e dùng
request.AllowAutoRedirect = false;
để chặn chuyển hướng thì chỉ lấy được html, ko lấy được link chuyển hướng - nếu e dùng
request.AllowAutoRedirect = true
thì bắt được link chuyển hướng, ko lấy được html ??
Có ai hiểu vấn đề e đang trình bày ko ạ ? Bác nào có cách giải quyết giúp e với. Tks
Code đầy đủ:
using System;
using System.Net;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("a.php");
request.Method = "GET";
request.AllowAutoRedirect = false;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string html = new StreamReader(response.GetResponseStream()).ReadToEnd();
Console.WriteLine(response.ResponseUri + "
" + html);
}
catch(WebException e)
{
Console.WriteLine(e.Status);
}
Console.ReadKey();
}
}
}
Bài liên quan
Mình chưa làm bao giờ nhưng nghĩ là để cái kia là false load xong file a rồi để lại true để lấy link sau đó load file b
Get ResponseHeaders đc ko bạn, trong đó sẽ có Header Location.
@htwap để lại true thì có tác dụng gì nữa bác ?? trong khi response nó lấy xong html rồi @@
Mệt ghê, cuối cùng cũng tìm ra lời giải. Kém tiếng anh ngâm cái trang microsoft mãi mới ra @@
up cho ae nào cần
string html = new StreamReader(response.GetResponseStream()).ReadToEnd(); var headers = response.Headers; Console.WriteLine(headers["Location"] + "\n" + html);
ban đầu writeLine response.Headers thấy ko có location nên ko nghĩ dùng Headers được
à, thì ý e là làm lại 1 request để lấy link b.