如何并行执行Web请求?

清醒的头脑

如何并行执行此代码?我试图在线程中执行执行,但是请求仍按顺序执行。我是并行编程的新手,我将很高兴为您提供帮助。

    public async Task<IList<AdModel>> LocalBitcoins_buy(int page_number)
    {
        IList<AdModel> Buy_ads = new List<AdModel>();
        string next_page_url;
        string url = "https://localbitcoins.net/buy-bitcoins-online/.json?page=" + page_number;
        WebRequest request = WebRequest.Create(url);
        request.Method = "GET";
        using (WebResponse response = await request.GetResponseAsync())
        {
            using (var reader = new StreamReader(response.GetResponseStream()))
            {
                JObject json = JObject.Parse(await reader.ReadToEndAsync());
                next_page_url = (string) json["pagination"]["next"];
                int counter = (int) json["data"]["ad_count"];
                for (int ad_list_index = 0; ad_list_index < counter; ad_list_index++)
                {
                    AdModel save = new AdModel();
                    save.Seller = (string) json["data"]["ad_list"][ad_list_index]["data"]["profile"]["username"];
                    save.Give = (string) json["data"]["ad_list"][ad_list_index]["data"]["currency"];
                    save.Get = "BTC";
                    save.Limits = (string) json["data"]["ad_list"][ad_list_index]["data"]["first_time_limit_btc"];
                    save.Deals = (string) json["data"]["ad_list"][ad_list_index]["data"]["profile"]["trade_count"];
                    save.Reviews = (string) json["data"]["ad_list"][ad_list_index]["data"]["profile"]["feedback_score"];
                    save.PaymentWindow = (string) json["data"]["ad_list"][ad_list_index]["data"]["payment_window_minutes"];
                    Buy_ads.Add(save);
                }
            }
        }
        Console.WriteLine(page_number);
        return Buy_ads;
    }
伊利亚尔·图杜舍夫(Iliar Turdushev)

我用Google搜索,发现这个链接12似乎WebRequest无法并行执行请求。我也尝试使用并行发送多个请求WebRequest,由于某些原因,我WebRequest没有并行发送请求

但是当我使用HttpClient类时,它会并行执行请求。尝试使用HttpClient而不是WebRequest按照Microsoft的建议使用

因此,首先,您应该用于HttpClient发出Web请求。


然后,您可以使用下一种方法并行下载页面:

public static IList<AdModel> DownloadAllPages()
{
    int[] pageNumbers = getPageNumbers();
    // Array of tasks that download data from the pages.
    Task<IList<AdModel>>[] tasks = new Task<IList<AdModel>>[pageNumbers.Length];

    // This loop lauches download tasks in parallel.
    for (int i = 0; i < pageNumbers.Length; i++)
    {
        // Launch download task without waiting for its completion.
        tasks[i] = LocalBitcoins_buy(pageNumbers[i]);
    }

    // Wait for all tasks to complete.
    Task.WaitAll(tasks);

    // Combine results from all tasks into a common list.
    return tasks.SelectMany(t => t.Result).ToList();
}

当然,您应该在此方法中添加错误处理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何并行执行两个请求

来自分类Dev

如何执行Python并行API请求处理?

来自分类Dev

是否所有Web请求都并行执行并异步处理?

来自分类Dev

是否所有Web请求都并行执行并异步处理?

来自分类Dev

Visual Studio Web性能测试-我可以使未编码的Web测试并行执行请求吗

来自分类Dev

如何执行对REST Web服务的POST请求?

来自分类Dev

如何执行并行命令

来自分类Dev

如何在相同标签下并行执行不同请求在不同从属上的作业执行

来自分类Dev

如何在相同标签下并行执行不同请求在不同从属上的作业执行

来自分类Dev

如何在ASP.NET WebApi中顺序执行所有请求,而不是并行执行?

来自分类Dev

AJAX请求不使用$ .when(...)并行执行

来自分类Dev

与Retrofit 2并行执行http请求

来自分类Dev

OkHttp如何使用看似同步的HTTP连接执行并行HTTP请求,而不使用线程?

来自分类Dev

如何绝对防止并行执行?

来自分类Dev

如何并行执行python subTests?

来自分类Dev

如何绝对防止并行执行?

来自分类Dev

如何并行执行 Redshift 查询

来自分类Dev

如何执行多个tar命令以并行执行?

来自分类Dev

执行Web请求时如何指定仅连接超时?

来自分类Dev

同时启动的两个并行请求被依次执行

来自分类Dev

Clojure-并行执行一堆HTTP请求-pmap?

来自分类Dev

是否在POSTMAN中以并行方式执行“集合”中的请求?

来自分类Dev

如何并行而不是顺序执行多个模型?

来自分类Dev

如何在Rust中禁用并行执行?

来自分类Dev

如何使用事务SQL并行执行?

来自分类Dev

如何并行执行cython文件编译?

来自分类Dev

如何找到最大并行执行限制?

来自分类Dev

如何与async.js并行执行函数?

来自分类Dev

如何并行执行创建大量对象的函数?

Related 相关文章

  1. 1

    如何并行执行两个请求

  2. 2

    如何执行Python并行API请求处理?

  3. 3

    是否所有Web请求都并行执行并异步处理?

  4. 4

    是否所有Web请求都并行执行并异步处理?

  5. 5

    Visual Studio Web性能测试-我可以使未编码的Web测试并行执行请求吗

  6. 6

    如何执行对REST Web服务的POST请求?

  7. 7

    如何执行并行命令

  8. 8

    如何在相同标签下并行执行不同请求在不同从属上的作业执行

  9. 9

    如何在相同标签下并行执行不同请求在不同从属上的作业执行

  10. 10

    如何在ASP.NET WebApi中顺序执行所有请求,而不是并行执行?

  11. 11

    AJAX请求不使用$ .when(...)并行执行

  12. 12

    与Retrofit 2并行执行http请求

  13. 13

    OkHttp如何使用看似同步的HTTP连接执行并行HTTP请求,而不使用线程?

  14. 14

    如何绝对防止并行执行?

  15. 15

    如何并行执行python subTests?

  16. 16

    如何绝对防止并行执行?

  17. 17

    如何并行执行 Redshift 查询

  18. 18

    如何执行多个tar命令以并行执行?

  19. 19

    执行Web请求时如何指定仅连接超时?

  20. 20

    同时启动的两个并行请求被依次执行

  21. 21

    Clojure-并行执行一堆HTTP请求-pmap?

  22. 22

    是否在POSTMAN中以并行方式执行“集合”中的请求?

  23. 23

    如何并行而不是顺序执行多个模型?

  24. 24

    如何在Rust中禁用并行执行?

  25. 25

    如何使用事务SQL并行执行?

  26. 26

    如何并行执行cython文件编译?

  27. 27

    如何找到最大并行执行限制?

  28. 28

    如何与async.js并行执行函数?

  29. 29

    如何并行执行创建大量对象的函数?

热门标签

归档