2009-10-20 5 views
5

J'utilise la classe ASIHTTPRequest afin de communiquer avec un service Web et obtenir une réponse. Voici comment j'envoie une requête au serveuriPhone ASIHTTPRequest - Impossible de démarrer la connexion HTTP

NSString *str = [NSString stringWithFormat:@"%@verifyLogin.json", serverUrl]; 
NSURL *url = [NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease]; 
[request addRequestHeader:@"Content-Type" value:@"text/x-gwt-rpc; charset=utf-8"]; 
NSDictionary* data = [NSDictionary dictionaryWithObjectsAndKeys:emailId, @"username", pwd, @"password", nil]; 
[request appendPostData: [[data JSONFragment] dataUsingEncoding: NSUTF8StringEncoding]]; 
[request setRequestMethod:@"POST"]; 
[request setDelegate:self]; 
[request setDidFinishSelector: @selector(gotLoginResponse:)]; 
[request setDidFailSelector: @selector(loginRequestFailed:)]; 

[networkQueue addOperation: request]; 
[networkQueue go]; 

Le contrôle se met immédiatement à la routine d'erreur et la description de l'erreur et le domaine sont

Impossible de démarrer la connexion HTTP et ASIHTTPRequestErrorDomain

Je peux obtenir la même demande de travailler via un outil de bureau pour vérifier les requêtes HTTP, donc je sais que les paramètres sont tous corrects.

Quelqu'un peut-il me dire s'il vous plaît ce que je manque ici lors de l'envoi de la demande?

Merci.

+0

dans votre première ligne il est dit "% verifyLogin.json". Cela ne devrait-il pas être? "%@verifyLogin.json" ???? – Jake

+0

J'ai le même problème, un peu de chance ?! – Sasho

Répondre

5

Comme je l'ai commenté plus tôt;

Dans votre première ligne, il est indiqué "% verifyLogin.json". Cela ne devrait-il pas être ? "%@verifyLogin.json" ????

+1

Désolé, c'était une faute de frappe. Corrigera dans la question – lostInTransit

0

Pouvez-vous vérifier le code d'état de la requête en cas d'échec? J'ai récemment traité un problème d'authentification d'utilisateur JSON avec ASI-HTTP-Request où la première requête échouerait toujours avec le code d'état 0 et une sorte d'échec de connexion réseau sous-jacent (comme si elle n'était pas connectée à Internet, mais clairement) .

j'ai pu le résoudre en définissant cette demande particulière de ne pas tenter d'utiliser une connexion persistante.

Alors essayez d'abord!

2

Pour moi, j'ai oublié d'ajouter http: // comme je testais localement. Mais après avoir ajouté http il a fonctionné avec succès

+1

le même cas ici: D – Abo3atef

Questions connexes