erreur 401 ASIHTTPRequest

Salut à  tous,



j'utilise en ce moment ASIHTTPRequest et une category (pour la gestion de OAuth)https://github.com/s...est%20additions



Actuellement je cherche à  envoyer une requête sur un serveur.


<br />
-(void)sendRequest{<br />
  <br />
	NSString *searchUrl=[NSString stringWithFormat:@&quot;%@news/sign/?email=%@&amp;id=1&quot;,kBaseURL,emailText.text];<br />
	 NSURL *url = [[NSURL alloc]initWithString:searchUrl];<br />
	ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];<br />
  <br />
	[request prepareOAuthv1RequestUsingConsumerKey:kConsumerKey<br />
								 consumerSecretKey:kConsumerSecret<br />
											 token:nil<br />
									   tokenSecret:nil<br />
											 realm:nil];<br />
  <br />
	[request setDelegate:self];<br />
	[request startAsynchronous];<br />
}<br />






Ca fonctionne de temps en temps (c'est bien ça le problème image/smile.png' class='bbc_emoticon' alt=':)' /> ). En fait ça marche souvent au premier envoi de la requête (donc requestFinished: est appelée). Mais si je renvoi exactement la même requête un instant plus tard, c'est requestFailed: qui est appelé et [request responseStatusCode] me retourne un 401 comme code, donc erreur d'authentification.



Je ne comprend pas pourquoi d'une requête à  une autre(et même) requête, j'ai ce problème.





Avez-vous une idée?



Merci

Réponses

  • AliGatorAliGator Membre, Modérateur
    Question bête, c'est un nouveau projet ?

    - Si oui, il est préférable d'abandonner ASIHTTPRequest de suite, qui est abandonné par son auteur et ne sera plus maintenu, et d'utiliser à  la place l'excellent AFNetworking.

    - Si non et que l'utilisation de ASIHTTPRequest est historique et qu'il te serait donc compliqué de migrer l'existant, je laisse les autres répondre, cela fait un bail que je n'ai pas utilisé ASI pour ma part !
  • Le projet est déjà  bien entammé avec ASIHTTPRequest donc ca va pas être simple à  migrer.



    Je vais quand même voir si je peux l'envisager.



    Sinon, si quelqu'un à  une réponse à  mon problème je prendrai volontier image/smile.png' class='bbc_emoticon' alt=':)' />
  • Malheureusement, c'est assez difficile à  débuger comme ça.
    1. Vérifier que le serveur renvoie bien un 401 (que le 401 remonté par ASI n'est pas un bug).
    2. Vérifier ce qui est envoyé au serveur (tokens, signature, paramètres, ...) pour voir si c'est ce que tu t'attends à  voir partir.
    3. Essayer de jouer cette même requête "à  la main" (via des plugins navigateur par exemple) et voir ce que te réponds le serveur ...


    S'agit-il de requêtes vers un service connu ? (Linkedin, Twitter, ...).





    J.
  • j'ai utilisé la libraire OAuthConsumer directement pour faire ma requête, et du coup ça fonctionne correctement. En faisant le tour des forum, il semble que ASIHTTPRequest ait quelques problème dans la gestion et réutilisation des token.
Connectez-vous ou Inscrivez-vous pour répondre.