如何使用c#从url获取/读取文本文件?



我正在尝试从URL:
https://whitworthpirates.com/services/schedule_txt.ashx?schedule=139读取文本

这是我的代码:-

var webRequest = WebRequest.Create(SourceUrl);
var response = webRequest.GetResponse();
var content = response.GetResponseStream();

using (var reader = new StreamReader(content))
{
string strContent = reader.ReadToEnd();
HttpContext.Current.Response.Write("Read: "+strContent+"<br />");
}
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();

HttpContext.Current.Response。Write打印不出任何东西。我已经尝试了https://google.com和StackOverflow网页相同的代码,它得到这些网站的文本很好。

我还尝试使用以下代码从相同的URL下载文件:-

WebClient webClient = new WebClient();
webClient.DownloadFile(url, @"c:myfile.txt");

它成功地在我的服务器上下载了一个。txt文件,但它是一个0KB大小的空文件。

有人能帮我一下吗?

这个网站似乎需要你发送一个UserAgent标头。(似乎可以是任何东西)

var webRequest = (HttpWebRequest)HttpWebRequest.Create("https://whitworthpirates.com/services/schedule_txt.ashx?schedule=139");
webRequest.UserAgent = "Hej";
var response = webRequest.GetResponse();
var content = response.GetResponseStream();
using (var reader = new StreamReader(content))
{
string strContent = reader.ReadToEnd();
strContent.Dump();
}

您需要完成响应。

HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();

您可能还需要告知响应是明文的,以便浏览器知道如何处理它。

HttpContext.Current.Response.ContentType = "text/plain";

最新更新