我正在研究.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的身份验证简单。
答案 0 :(得分:0)
我认为在Bungie Api服务器内部实际上有些东西是错误的,但我的代码的多个方面必须改变。首先,我的BaseUri错过了www.
。其次,GetProfileUrl
在添加/
之前缺少?queryString
。