小编LB2*_*LB2的帖子

ASP.NET多线程Web请求

我正在我的ASP.NET解决方案中构建一个页面,该页面从第三方API服务中检索大部分数据.

页面本身需要对API进行大约5次单独的不同调用以填充其所有控件,因为每个API请求都会返回不同的数据集.

我想处理我在新线程上进行的每个单独的Web请求,同时减少加载时间.

我正在制作的每个请求都是这样的: -

WebRequest request = WebRequest.Create(requestUrl);

string response = new StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd();

return new JsonSerializer().Deserialize<OccupationSearch>(new JsonTextReader(new StringReader(response)));
Run Code Online (Sandbox Code Playgroud)

首先,我应该尝试这个吗?即,安全吗?并且它会通过多线程来提高性能.

其次,这样做的最佳方法是什么?多线程系统有许多不同的方法,但最适合这项任务的方法是什么?

c# asp.net multithreading webrequest

8
推荐指数
2
解决办法
2万
查看次数

DateTime.UtcNow 在同一方法中会返回不同的值吗?

假设我DateTime.UtcNow在单个方法的两次调用之间有一个很长的简单数学循环。

DateTime.UtcNow如果中间的代码花费的时间超过系统的计时器分辨率(例如 10 毫秒),是否会在同一方法内返回两个不同的值?

推而广之,如果代码在日期转变为新的一天时运行,是否有可能DateTime.UtcNow.Date导致同一方法内出现两个不同的日期?

.net c#

3
推荐指数
1
解决办法
1876
查看次数

如何仅获取带有 HTTP GET 请求的标头而不获取正文

是否有机会让 http get 请求、读取标头而不是获取正文以减少流量和提高速度?我使用这个代码:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(u1);
        request.AllowAutoRedirect = true;
        request.Timeout = 30000;
        request.Method = "GET";
        request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36";
        request.KeepAlive = true;
        HttpWebResponse response;

        using (response = (HttpWebResponse)request.GetResponse())
        {
            var res = response.ResponseUri.ToString();
        }
Run Code Online (Sandbox Code Playgroud)

所以我只需要结果网址。如果有重定向(位置标头) - 我会得到结果 url。但我不需要身体。使用 GET 方法(不是 HEAD 方法)获得响应以在没有响应正文的情况下获得结果是否真实?

c# http

0
推荐指数
1
解决办法
2184
查看次数

标签 统计

c# ×3

.net ×1

asp.net ×1

http ×1

multithreading ×1

webrequest ×1