下面的 c# 代码不是从给定的 url 读取网站或网页
Posted
技术标签:
【中文标题】下面的 c# 代码不是从给定的 url 读取网站或网页【英文标题】:Below c# code is not reading websites or webpage from given urls 【发布时间】:2017-11-29 03:53:01 【问题描述】: WebRequest request = WebRequest.Create(url);
WebRequest.DefaultWebProxy = null;
request.Proxy = null;
WebResponse response = request.GetResponse();
Stream data = response.GetResponseStream();
using (StreamReader sr = new StreamReader(data))
html = sr.ReadToEnd();
以上代码无法读取/下载以下网页: 1)https://en.wikipedia.org/wiki/Unified_Payments_Interface 2)http://www.npci.org.in/UPI_Background.aspx
【问题讨论】:
那么它有什么作用呢?它以什么方式没有得到它,当它“没有”时,响应变量包含什么 如果我知道,以什么方式没有得到它,那我为什么要问。 嗯,你应该可以在getresponse之后去debug,看看response变量... 【参考方案1】:这可以帮助您以下代码包含获取和发布数据:
public static string PostContent(this Uri url, string body, string contentType = null)
var request = WebRequest.Create(url);
request.Method = "POST";
if (!string.IsNullOrEmpty(contentType)) request.ContentType = contentType;
using (var requestStream = request.GetRequestStream())
if (!string.IsNullOrEmpty(body)) using (var writer = new StreamWriter(requestStream)) writer.Write(body);
using (var response = request.GetResponse() as HttpWebResponse)
using (var stream = response.GetResponseStream())
using (var reader = new StreamReader(stream))
return reader.ReadToEnd();
public static string GetContent(this Uri url)
WebClient client = new WebClient();
try
using (client)
client.Encoding = Encoding.UTF8;
return client.DownloadString(url);
catch (WebException)
return "";
finally
client.Dispose();
client = null;
【讨论】:
【参考方案2】:请注意.aspx
文件扩展名设计服务器端页面,因此您将只能下载在这些网站上导航时显示的html 页面(.php
文件也是如此)。
但如果你想下载前端视图,这应该可以:
using System.Net;
...
WebClient client = new WebClient();
client.DownloadFile("Your url","download location");
【讨论】:
以上是关于下面的 c# 代码不是从给定的 url 读取网站或网页的主要内容,如果未能解决你的问题,请参考以下文章