C#.Net标准HttpClient将内容复制到流时出错

时间:2017-09-06 17:01:55

标签: c# dotnet-httpclient

我正在研究.Net标准类库,并致力于为新的Destiny 2 Api创建一个库。我有一种方法,即搜索用户获取其信息。但是,当我向另一个端点发出请求时,我收到此错误:

  

System.AggregateException:发生了一个或多个错误。 --->   System.Net.Http.HttpRequestException:将内容复制到a时出错   流。 ---> 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的身份验证简单。

1 个答案:

答案 0 :(得分:0)

我认为在Bungie Api服务器内部实际上有些东西是错误的,但我的代码的多个方面必须改变。首先,我的BaseUri错过了www.。其次,GetProfileUrl在添加/之前缺少?queryString