首页 > 解决方案 > C# HttpClient 307 命运 2 搜索用户 API

问题描述

我正在为 Destiny 2 API 开发一个库,我在这个地方遇到了一个问题。我写了一个扩展,HttpClient.GetAsync以便我可以做HttpClient.GetAsync<T>,我发现在这个扩展中我没有收到成功消息,因为我得到了

307临时重定向

我已经使用相同的 api 密钥和相同的路径请求将相同的 API 请求运行到 Postman 中,并且 Postman 没有收到错误。

扩展代码:

public async static Task<T> GetAsync<T>(this HttpClient Web, String Path)
        {
            var result = await Web.GetAsync(Path);
            if (result.IsSuccessStatusCode)
            {
                var body = await result.Content.ReadAsStringAsync();
                return JsonConvert.DeserializeObject<T>(body);
            }
            else
            {
                return default(T);
            }
        }

在创建根 ApiClass 时创建 HttpClient:

private HttpClient _Web { get; set; } = new HttpClient(new HttpClientHandler()
        {
            AllowAutoRedirect = true
        });

标签: c#http-status-code-307

解决方案


因此,在敲打了一段时间之后,我发现string path = $"User/SearchUsers?q={q}";当它想要这个字符串string path = $"User/SearchUsers/?q={q}";注意 SearchUsers 之后的斜线时,我正在传递这个字符串......我认为他们的 API 只是配置错误,这很烦人..


推荐阅读