Je suis en train de créer une application iPhone basée sur la boîte à outils Gsoap pour me connecter à un service Web. Tout fonctionne bien sauf quand je tente de me connecter à mon service après déconnexion et reconnexion 3g sur l'appareil, je reçois:L'utilisation de GSoap renvoie EHOSTUNREACH lors de l'appel de connect() via socket.h
SOAP 1.1 fault: SOAP-ENV:Client [no subcode]
"Connection refused"
Detail: connect failed in tcp_connect()
de travail à travers le débogueur montre que l'erreur vient de connect()
méthode de socket.h
. Je ne comprends pas vraiment, quand je lance une autre application comme Safari, l'appareil est connecté à Internet. Et après le chargement d'une page Web, la connexion de mon application fonctionne bien.
Voici le code que je utilise:
//GSoap initialization
struct soap soap;
soap_init(&soap);
soap.connect_timeout = 0;
soap.send_timeout = 0;
soap.recv_timeout = 0;
// objects request & response
// struct types can be foundin soapStub.h
struct _ns1__GetAuthentification requete;
struct _ns1__GetAuthentificationResponse reponse;
// init request
requete.ConnectPass = (char *) [connectPass UTF8String];
requete.Login = (char *) [login UTF8String];
requete.Password = (char *) [password UTF8String];
requete.soap = &soap;
// request callback. returns SOAP_OK if something has been returned
if(soap_call___ns1__GetAuthentification(&soap,NULL,NULL, &requete,&reponse) == SOAP_OK){
//then we build the result
NSLog(@"Yay!");
soap_end(&soap); // remove deserialized data and clean up
soap_done(&soap); // detach the gSOAP environment
return authResult;
}
else {
//NSLog(@"Soap Error : GetAuthentification");
// We try to see if there's any problem. @catch statements are here just to keep note of the concerned
// exceptions for each request. No utility for the code.
@try {
[self processFault:&soap];
}
@catch (MMWrongId * e) {
@throw e;
}
@catch (MMConnectionFailed * e) {
@throw e;
}
@catch (MMGetAuthentificationFault * e) {
@throw e;
}
return nil;
}
Suis-je manque tout particulier drapeau/option?