运行星空 2021-07-30 17:21 采纳率: 0%
浏览 42

为什么我使用浏览器对服务器发送get请求很快,但是利用C#编写的http请求运行运行就会卡顿很长时间继续访问

public static string GetData1(string url)
        {
            System.GC.Collect();
            string result = "";
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.Proxy = null;
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            Stream stream = resp.GetResponseStream();
            try
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    result = reader.ReadToEnd();
                }
            }
            finally
            {
                stream.Close();
            }
            resp.Close();
            return result;
        }

卡顿的地方都是在 HttpWebResponse resp = (HttpWebResponse)req.GetResponse();这个地方

  • 写回答

2条回答 默认 最新

  • jinting2010 2021-07-30 17:34
    关注

    你仅仅传url,慢,解释有很多种
    比如 如果我是反爬虫,我就会判断一下header里面的内容,像爬虫的,我就会拖几秒再给你数据
    请你把保证所有信息和 浏览器发出去的一样,用抓包工具抓一下你浏览器的请求都带了些什么信息过去,你request里面就放啥,然后再试试,是不是快起来了
    又或者这个页面是从其它页面来的,带了什么id在请求里面,而你模拟的时候没有,鬼知道服务器做了什么耗时的查询......,
    所以模拟就模拟得像一点

    评论

报告相同问题?

问题事件

  • 创建了问题 7月30日

悬赏问题

  • ¥15 Labview机器人问题
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr