c# - 禁用 HttpWebRequest 的图像下载

标签 c# image httpwebrequest httprequest

是否可以说一个网络请求只从站点获取基于文本的数据?如果是,我应该怎么做?

我唯一能想到的就是在响应字符串中搜索并删除所有图像标签。但这是一种非常糟糕的方式...

编辑:这是我的代码片段:

            string baseUrl = kvPair.Value[0];
            string loginUrl = kvPair.Value[1];
            string notifyUrl = kvPair.Value[2];
            cc = new CookieContainer();
            string loginDetails = DataCollector.GetLoginDetails(baseUrl, ref cc);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(loginUrl);
            request.Method = "POST";
            request.Accept = "text/*";
            request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
            request.CookieContainer = cc;
            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36";
            Byte[] data = Encoding.ASCII.GetBytes(loginDetails);
            request.ContentLength = data.Length;
            using (Stream s = request.GetRequestStream())
            {
                s.Write(data, 0, data.Length);
            }
            HttpWebResponse res = (HttpWebResponse)request.GetResponse();
            request = (HttpWebRequest)WebRequest.Create(notifyUrl);
            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36";
            request.CookieContainer = cc;
            res = (HttpWebResponse)request.GetResponse();
            Stream streamResponse = res.GetResponseStream();
            using (StreamReader sr = new StreamReader(streamResponse))
            {
                ViewData["data"] += "<div style=\"float: left; margin-bottom: 50px;\">" + sr.ReadToEnd() + "</div>";
            }

最佳答案

我为自己找到了一个很好的编码解决方案:

public static string StripImages(string input)
{
   return Regex.Replace(input, "<img.*?>", String.Empty);
}

这会杀死所有图像,但只会在您加载完所有图像后立即执行,因此在此解决方案中不会节省传输的数据...

关于c# - 禁用 HttpWebRequest 的图像下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39773501/

相关文章:

c# - 单点触控 : Can't create DbParameterCollection?

c++ - 哪个开源图片库支持最多的文件格式可以用于商业应用

C# HttpWebRequest 到 HTTPS 失败

c# - 如何使用反射按名称调用方法

c# - Wpf-Datagrid 和 ObservableCollection-AutoGenerateColumns?

c# - 在 Visual Web Developer 2010 Express 中运行 "working"Web 应用程序时出错

javascript - 没有指令的 AngularJS 图片上传预览

javascript - 显示图像加载进度条

c# - 如何连接但等待使用 HttpWebRequest 发送任何 header ?

c# - HttpWebRequest.GetResponse() 与 GetResponseAsync() 中的超时行为