2009-10-20 23 views
5

Estoy usando la clase ASIHTTPRequest para comunicarme con un servicio web y obtener una respuesta. Así es como puedo enviar una solicitud al servidoriPhone y ASIHTTPRequest - No se puede iniciar la conexión 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]; 

El control pasa inmediatamente a la rutina de error y la descripción del error y de dominio son

No se puede iniciar la conexión HTTP y ASIHTTPRequestErrorDomain

Puedo obtener la misma solicitud para trabajar a través de una herramienta de escritorio para verificar las solicitudes HTTP, así sé que la configuración es la correcta.

¿Puede alguien decirme qué me falta aquí al enviar la solicitud?

Gracias.

+0

en su primera línea dice "% verifyLogin.json". ¿No debería ser eso? "%@verifyLogin.json" ???? – Jake

+0

Tengo el mismo problema, ¿hay algo de suerte? – Sasho

Respuesta

5

Como comenté anteriormente;

en su primera línea dice "% verifyLogin.json". No debería ser que sea; "%@verifyLogin.json" ????

+1

Disculpa que fue un error tipográfico. Corregirá en la pregunta – lostInTransit

0

¿Puede verificar el código de estado de la solicitud cuando falla? Hace poco traté con un problema de autenticación de usuario JSON con ASI-HTTP-Request donde la primera solicitud siempre fallaba con el código de estado 0 y algún tipo de falla de conexión de red subyacente (como si no estuviera conectado a Internet, pero claramente lo estaba) .

Pude resolverlo estableciendo esa solicitud en particular para no intentar utilizar una conexión persistente.

¡Intenta eso primero!

2

Para mí me olvidé de agregar http: // como estaba probando localmente. Pero después de agregar http se ejecutó con éxito

+1

el mismo caso aquí: D – Abo3atef

Cuestiones relacionadas