Api 尝试刷新Spotify令牌C时出现500个错误#

Api 尝试刷新Spotify令牌C时出现500个错误#,api,oauth-2.0,spotify,spotify-app,Api,Oauth 2.0,Spotify,Spotify App,在尝试刷新Spotify令牌时,我不断收到500个错误 错误:{“错误”:“服务器错误”} 请求: POST HTTP/1.1 授权:基本ZWM…WI= 主持人:accounts.spotify.com 内容长度:170 预期:100人继续 连接:保持活力 授权类型=刷新令牌&刷新令牌=AQA9…..p5qc 代码: string请求=”https://accounts.spotify.com/api/token"; StringBuilder sbOutput=新的StringBuilder(

在尝试刷新Spotify令牌时,我不断收到500个错误

错误:{“错误”:“服务器错误”}

请求:

POST HTTP/1.1 授权:基本ZWM…WI= 主持人:accounts.spotify.com 内容长度:170 预期:100人继续 连接:保持活力

授权类型=刷新令牌&刷新令牌=AQA9…..p5qc

代码:

string请求=”https://accounts.spotify.com/api/token";
StringBuilder sbOutput=新的StringBuilder();
StringBuilder sbBody=新的StringBuilder();
追加(“授权类型=刷新令牌”);
sbBody.Append(“&refresh_token=“+spotifyToken.refreshttoken”);
//sbBody.Append(“&client_id=“+”ec41…..19”);
//sbBody.Append(“&client_secret=“+”9b…5b”);
字符串clientandsecret=“ec….19:9ba….e5b”;
var plainTextBytes=System.Text.Encoding.UTF8.GetBytes(clientandsecret);
string ClientAndSecretBase64=System.Convert.ToBase64字符串(明文字节);
字典头=新字典();
头文件[“授权”]=“基本”+ClientAndSecretBase64;
response=SendRequest(“POST”,request,sbBody.ToString(),headers,ref sbOutput);
发送请求方法:

if (!string.IsNullOrEmpty(url))
        {
            using (var client = new HttpClient())
            {
                //Create request URI
                Uri requestURI = new Uri(url);

                //Create Stream from the content
                Stream bodyStream = new MemoryStream(Encoding.UTF8.GetBytes(body ?? ""));
                HttpContent requestContent = new StreamContent(bodyStream);

                //Headers
                foreach (KeyValuePair<string, string> pair in headers)
                {
                    client.DefaultRequestHeaders.Add(pair.Key, pair.Value);
                }

                Task<HttpResponseMessage> responseTask;

                switch (httpWebRequestMethod.ToUpper())
                {
                    case "POST":
                        responseTask = client.PostAsync(requestURI, requestContent);
                        break;
                    case "GET":
                        responseTask = client.GetAsync(requestURI);
                        break;
                    case "DELETE":
                        responseTask = client.DeleteAsync(requestURI);
                        break;
                    case "PUT":
                        responseTask = client.PutAsync(requestURI, requestContent);
                        break;
                    default:
                        return HttpStatusCode.Unused;
                }

                //Lets wait
                responseTask.Wait();

                if (responseTask.IsCompleted)
                {
                    HttpResponseMessage response = responseTask.Result;

                    string resultBody = response.Content.ReadAsStringAsync().Result;

                    sbOutput.Append(resultBody);

                    return response.StatusCode;
                }
            }
        }

        return HttpStatusCode.Unused;
    }
if(!string.IsNullOrEmpty(url))
{
使用(var client=new HttpClient())
{
//创建请求URI
urirequesturi=新的Uri(url);
//从内容创建流
Stream bodyStream=newmemoryStream(Encoding.UTF8.GetBytes(body??);
HttpContent requestContent=新的StreamContent(bodyStream);
//标题
foreach(标头中的KeyValuePair对)
{
client.DefaultRequestHeaders.Add(pair.Key,pair.Value);
}
任务-反应任务;
开关(httpWebRequestMethod.ToUpper())
{
案例“职位”:
responseTask=client.PostAsync(requestURI,requestContent);
打破
案例“GET”:
responseTask=client.GetAsync(requestURI);
打破
案例“删除”:
responseTask=client.deleteSync(requestURI);
打破
案例“付诸表决”:
responseTask=client.PutAsync(requestURI,requestContent);
打破
违约:
返回HttpStatusCode.Unused;
}
//让我们等一下
responseTask.Wait();
如果(响应任务已完成)
{
HttpResponseMessage response=responseTask.Result;
字符串resultBody=response.Content.ReadAsStringAsync().Result;
sbOutput.Append(resultBody);
返回response.StatusCode;
}
}
}
返回HttpStatusCode.Unused;
}
任何帮助都将不胜感激,因为我已经准备好把头撞到墙上了

谢谢:)

if (!string.IsNullOrEmpty(url))
        {
            using (var client = new HttpClient())
            {
                //Create request URI
                Uri requestURI = new Uri(url);

                //Create Stream from the content
                Stream bodyStream = new MemoryStream(Encoding.UTF8.GetBytes(body ?? ""));
                HttpContent requestContent = new StreamContent(bodyStream);

                //Headers
                foreach (KeyValuePair<string, string> pair in headers)
                {
                    client.DefaultRequestHeaders.Add(pair.Key, pair.Value);
                }

                Task<HttpResponseMessage> responseTask;

                switch (httpWebRequestMethod.ToUpper())
                {
                    case "POST":
                        responseTask = client.PostAsync(requestURI, requestContent);
                        break;
                    case "GET":
                        responseTask = client.GetAsync(requestURI);
                        break;
                    case "DELETE":
                        responseTask = client.DeleteAsync(requestURI);
                        break;
                    case "PUT":
                        responseTask = client.PutAsync(requestURI, requestContent);
                        break;
                    default:
                        return HttpStatusCode.Unused;
                }

                //Lets wait
                responseTask.Wait();

                if (responseTask.IsCompleted)
                {
                    HttpResponseMessage response = responseTask.Result;

                    string resultBody = response.Content.ReadAsStringAsync().Result;

                    sbOutput.Append(resultBody);

                    return response.StatusCode;
                }
            }
        }

        return HttpStatusCode.Unused;
    }