具有请求参数的Windows Phone上的RestSharp

时间:2012-03-13 18:04:39

标签: windows-phone-7 oauth restsharp

我正在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 那么,我怎么看呢?或者也许你可以帮我解决这一切 问题?

1 个答案:

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

希望,这会有所帮助。