为了让我可以在桌面应用程序中进行产品调用,我已经尝试了很多个小时了。我能够使用开发人员控制台生成的访问令牌来使用restsharp进行http Get调用,但是在旧的访问令牌过期(即一个小时)之后,我无法得到一个Put来获得新的访问令牌。我也试着使用fiddler,但是不断地得到"HTTP 400坏请求“错误。
ChannelAdvisor开发人员-文档:链接
更新访问令牌
(请原谅我不知道如何跳转到,同时更新页面上的访问令牌。)
我不能让这个在雷斯特夏普,经过数百个帖子和论坛在oauth,Restsharp谷歌的例子,任何事情。除了http 400或invalid_client之外,试图获得其他任何响应都是令人恼火的。这就是一篇文章所说的解决办法,因为restsharp自动神奇地将一些东西添加到呼叫中,并认为使用清楚的参数是有好处的。
RestSharp码
string s = Convert.ToBase64String(Encoding.ASCII.GetBytes(creds.appID + ":" + creds.sharedSecret));
var client2 = new RestClient("https://api.channeladvisor.com/oauth2/token?grant_type=refresh_token&refresh_token=" + creds.refreshToken);
var request2 = new RestRequest();
request2.Method = Method.POST;
request2.Parameters.Clear();
request2.AddHeader("Authorization", s);
request2.AddHeader("Content-Type", " application/x-www-form-urlencoded");
request2.AddHeader("Cache-Control", "no-cache");
IRestResponse response2 = client2.Execute(request2);于是,我走到fiddler那里,把示例代码粘贴到便签板上,添加了我的令牌,但没有结果。
POST /oauth2/token HTTP/1.1
Host: api.channeladvisor.com
Authorization: Basic MY_ENCODED_APPID:SHARED_SECRET
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
grant_type=refresh_token&refresh_token=xxxxxxxxxxxxxxxxxxxxxmNZtF-cpLy44DV4DQ9Q这也是返回400错误。soap使用身份验证用户名、密码很简单,但我需要更多soap不提供的信息。任何帮助都是非常感谢的,最好是使用信道顾问调用格式的一个小提琴或restsharp示例。
发布于 2017-06-21 17:38:40
我为了让它发挥作用而做的事。
string s = Convert.ToBase64String(Encoding.ASCII.GetBytes(creds.appID + ":" + creds.sharedSecret));
var client2 = new RestClient("https://api.channeladvisor.com/oauth2/token");
var request2 = new RestRequest();
request2.Method = Method.POST;
request2.Parameters.Clear();
request2.AddHeader("Authorization", "Basic " + s );
request2.AddHeader("Content-Type", " application/x-www-form-urlencoded");
request2.AddHeader("Cache-Control", "no-cache");
request2.AddParameter("grant_type", "refresh_token");
request2.AddParameter("refresh_token", creds.refreshToken);
IRestResponse response2 = client2.Execute(request2);https://stackoverflow.com/questions/44656949
复制相似问题