Question

Je travaille sur le client Windows Phone pour un service avec l'API Oauth1.

Dans la documentation API, j'ai quelque chose comme ceci :

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

method: GET

paramètres:page_num=[int] - numéro de page, >=1, par défaut=1.

Pour le numéro de page par défaut, tout fonctionne bien :

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

Lorsque j'exécute cette demande, je reçois une réponse correcte avec des données.Mais si j'ajoute un paramètre (décommentez TokenRequest.AddParameter("page_num", 2);) Je reçois "Signature invalide".J'ai essayé d'envoyer à la fois les paramètres int et 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)
                {

Je reçois le message "Signature invalide".J'ai aussi essayé le paramètre de chaîne :

        TokenRequest.AddParameter("page_num", "2");

Le fournisseur d'API m'a dit que j'ai un problème avec la chaîne de base de la signature http://oauth.net/core/1.0/#sig_base_example Alors, comment puis-je le visualiser ?Ou peut-être pouvez-vous m'aider à résoudre tout ce problème?

Était-ce utile?

La solution

Je pense que vous brisez la structure de la demande...mieux vaut vérifier la demande via Fiddler, mais essayez d'écrire quelque chose comme

var TokenRequest = new RestRequest("/iphone/json/users/?page_num=2", Method.GET);

au lieu de

var TokenRequest = new RestRequest("/iphone/json/users/", Method.GET);

TokenRequest.AddParameter("page_num", 2);

J'espère que cela aiderait.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top