我正在Windows Phone客户端上使用Oauth1 API处理一项服务。
在API文档中,我有类似这样的内容:
url: http://example.com/iphone/json/users/
method: GET
参数: page_num = [int] - 页码,> = 1,默认= 1。
对于默认页面num,一切正常:
RestClient HabraClient = new RestClient("http://habrahabr.ru");
HabraClient.Authenticator = OAuth1Authenticator.ForProtectedResource("xxx", "yyyyyy", App.Tokens.Key, App.Tokens.Secret);
var TokenRequest = new RestRequest("/iphone/json/users/", Method.GET);
HabraClient.ExecuteAsync(TokenRequest, (response =>
{
try
{
if (response.StatusCode == HttpStatusCode.OK)
{
当我执行此请求时,我会收到正确的数据响应。 但是,如果我添加参数(取消注释TokenRequest.AddParameter(“page_num”,2);)我收到“无效签名”。我试图发送int和string参数。
var TokenRequest = new RestRequest("/iphone/json/users/", Method.GET);
TokenRequest.AddParameter("page_num", 2);
HabraClient.ExecuteAsync(TokenRequest, (response =>
{
try
{
if (response.StatusCode == HttpStatusCode.OK)
{
我收到消息“无效的签名”。我也试过了字符串参数:
TokenRequest.AddParameter("page_num", "2");
API提供商告诉我,我的签名库有问题 字符串http://oauth.net/core/1.0/#sig_base_example 那么,我怎么看呢?或者也许你可以帮我解决这一切 问题?
答案 0 :(得分:0)
我认为你打破了请求结构...更好地检查Fiddler上的请求,但尝试编写类似
的内容var TokenRequest = new RestRequest("/iphone/json/users/?page_num=2", Method.GET);
而不是
var TokenRequest = new RestRequest("/iphone/json/users/", Method.GET);
TokenRequest.AddParameter("page_num", 2);
希望,这会有所帮助。