2010-07-05 5 views
2

Je veux poser des questions sur le problème de l'application C de l'application iPhone.Code d'état HTTP = 0 (iPhone) (objectif c)

J'ai écrit un programme pour stocker les cookies et passer à une autre URL pour récupérer les cookies. Cependant, j'ai trouvé que l'un des codes d'état de retour est 0. Le contenu du code HTML est vide.

Quelqu'un peut-il m'aider? Ce qui suit est mon code.

// create a new mutable url 
NSMutableURLRequest *request_get2 = [[[NSMutableURLRequest alloc] init] autorelease]; 
    [request_get2 setURL:[NSURL URLWithString:@"http://www.example.com"]]; 
[request_get2 setHTTPMethod:@"GET"]; 
[request_get2 setValue:@"text/html; charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; 
[request_get2 setValue:@"http://www.example.com" forHTTPHeaderField:@"Referer"]; 
[request_get2 setHTTPShouldHandleCookies:YES]; 
     // cookiesString is a string, the format is "cookieName=cookieValue;" 
[request_get2 setValue: (NSString *) cookiesString forHTTPHeaderField:@"Cookie"]; 

// doGet - response 
NSHTTPURLResponse *response_get2 = nil; 
NSError *error_get2 = nil; 
NSData *responseData_get2 = [NSURLConnection sendSynchronousRequest:request_get2 returningResponse:&response_get2 error:&error_get2]; 
NSString *data_get2 = [[NSString alloc]initWithData:responseData_get2 encoding:NSUTF8StringEncoding]; 


NSString *responseURL_get2 = [[response_get2 URL] absoluteString];   // null value 
NSString *responseTextEncodingName_get2 = [response_get2 textEncodingName]; // null value 
NSString *responseMIMEType_get2 = [response_get2 MIMEType];     // null value 
NSUInteger *responseStatusCode_get2 = [response_get2 statusCode]; //[responseStatusCode intValue]; // the status code is 0 

Merci beaucoup

Répondre

3

Si vous obtenez un 0 pour un code de réponse, la réponse response_get2 probablement n'a jamais été initialisé, ce qui pourrait indiquer un problème avec la demande sans rapport avec votre serveur web.

Vous définissez error_get2, donc vérifier sa valeur après la demande est placée:

if (!error_get2) { 
    NSString *responseURL_get2 = [[response_get2 URL] absoluteString];   // null value 
    NSString *responseTextEncodingName_get2 = [response_get2 textEncodingName]; // null value 
    NSString *responseMIMEType_get2 = [response_get2 MIMEType];     // null value 
    NSUInteger *responseStatusCode_get2 = [response_get2 statusCode]; //[responseStatusCode intValue]; // the status code is 0 
} 
else { 
    NSLog(@"something went wrong: %@", [error_get2 userInfo]); 
} 
+0

Merci pour votre réponse. Tu as raison. cela vous dérangerait de voir mon erreur sur le post suivant. – Questions

+0

Salut, Alex, désolé de vous retrouver, cela vous dérangerait de voir ma nouvelle réponse, j'ai vraiment besoin de votre aide. Je vous remercie. – Questions