RestSharp sur Windows Phone avec paramètres de requête
-
13-12-2019 - |
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?
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.