【问题标题】:C# .Net Standard HttpClient Error while copying content to a stream将内容复制到流时出现 C# .Net Standard HttpClient 错误
【发布时间】:2018-02-15 06:31:14
【问题描述】:

我正在开发一个 .Net Standard 类库,并正在为新的 Destiny 2 Api 创建一个库。我有一种工作方法是搜索用户以获取他们的信息。但是,当我向不同的端点发出请求时,我会收到此错误:

System.AggregateException:发生一个或多个错误。 ---> System.Net.Http.HttpRequestException:将内容复制到 溪流。 ---> System.IO.IOException: 读操作失败,见 内部异常。 ---> System.Net.Http.WinHttpException: 操作 已取消

我可以使用 PostMan 或任何其他 Api 测试工具很好地发送这个请求,所以我的代码一定有问题。值得注意的是,在使用其他 Api 工具时,我注意到我被重定向了几次。此外,当使用 Fiddler 时,我可以看到实际上没有任何请求返回 Json,它们看起来都像是重定向到另一个页面,Postman 显示 3 重定向 fiddler 显示 2,然后我的代码失败。

我的代码很小,所以我想不出有什么可能破坏它:

public string GetProfile(BungieMembershipType membershipType, string destinyMembershipId)
{
    var properUrl = String.Format(GetProfileUrl, (int)membershipType, destinyMembershipId);
    var rawData = RootRequest.Web.GetStringAsync(properUrl).Result;
    return rawData;
}

对我来说唯一奇怪的是我在单元测试中测试我的代码,在调试期间我无法评估RootRequest。 RootRequest 是一个静态类,上面有一个静态 HttpClient,用于发出所有请求以保持对 Api 的身份验证简单。

【问题讨论】:

    标签: c# dotnet-httpclient


    【解决方案1】:

    我会假设 Bungie Api 服务器内部确实存在问题,但我的代码的多项内容必须更改。首先,我的 BaseUri 缺少www.。其次,GetProfileUrl 在添加?queryString 之前缺少/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 2020-04-10
      • 2020-12-12
      • 1970-01-01
      相关资源
      最近更新 更多