2012-03-13 43 views
1

我正在使用Oauth1 API处理Windows Phone客户端的一项服务。带有请求参数的Windows Phone上的RestSharp

在API文档我有这样的事情:

url: http://example.com/iphone/json/users/

method: GET

参数: PAGE_NUM = [INT] - 页码,> = 1,默认= 1。

对于默认页次一切正常:

 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 这样一个问题,如何查看呢?或者,也许你可以帮助我解决这一切 的问题?

+1

你能发表更完整的工作版本例子_and_非工作版本吗? – 2012-03-13 18:35:15

+0

你是如何生成签名的? – 2012-03-13 19:01:31

+0

约翰,我已更新帖子。 Matt,签名是由API生成的,我试图找到一种方法,如何在调试器中看到它:) – Ponf 2012-03-13 19:28:13

回答

0

我觉得你打破了请求结构...更好地检查过提琴手的要求,但要尽量写类似

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); 

希望,这将有助于。

+0

非常感谢!有用! – Ponf 2012-03-29 17:33:18