【问题标题】:Multiple REST API requests using PLinq使用 Plinq 的多个 REST API 请求
【发布时间】:2015-05-16 03:35:02
【问题描述】:

我正在努力解决这个问题,以便专家可以帮助我继续前进。

正如下面“svik”所建议的,在完成所有任务后,我有一个HTTPResponseMessage[]

我如何知道对什么请求的响应?

var tasks = File.ReadLines(filepath).Select(url => client.GetAsync(url));
var results = await Task.WhenAll(tasks);

【问题讨论】:

    标签: c# plinq


    【解决方案1】:

    PLINQ 不适用于异步操作。但您实际上并不需要 PLINQ:

    var tasks = File.ReadLines(filepath).Select(url => client.GetAsync(url));
    var results = await Task.WhenAll(tasks);
    

    这将启动所有任务串行,但它们会继续并行运行。

    【讨论】:

    • 谢谢,我在哪里处理响应响应是包含文档位置信息 ( url(s) ) 的 JSON。然后我需要对每个 url 进行 GET REST 调用并将文档保存到文件夹中
    • 另外,当任务完成时,我如何将“响应”关联回相应的文件夹?我刚刚收到所有回复的转储。现在,无法确定哪个响应是针对哪个请求/文件夹。
    • @billboard 您可以查看回复的RequestMessage.RequestUri 以获取原始网址。
    • RequestMessage.RequestUri 只保存 BaseAddress,JSON 请求作为有效负载发送。如何从RequestMessage中获取payload?
    • @Asad,当我尝试访问 RequestMessage {“无法访问已处置的对象。\r\n对象名称:'System.Net.Http.ObjectContent`1[[JasonApiClient .RequestMessage, JasonApiClient, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'。"}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多