Ho un server in esecuzione localmente (il mio IP è 192.168.0.98) e ho sperimentato con qualche codice di rete per accedervi. In origine questo è stato fatto tramite AFNetworking, ma l'ho fatto ora con un NSURLSession
come questo:NSURLSession non riesce quando si tenta di assegnarci IP invece di localhost o home
NSURLSession *session = [NSURLSession sharedSession];
NSURL *url = [NSURL URLWithString:@"http://192.168.0.98:8080/api"];
NSURLSessionDataTask *task = [session dataTaskWithURL: url
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"Error: %@", error);
NSLog(@"Body: %@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
}];
[task resume];
ho quindi eseguirlo con queste 3 URL:
http://localhost:8080/api
-> opere.http://127.0.0.1:8080/api
-> funziona.http://192.168.0.98:8080/api
-> fallisce con l'errore:Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory" UserInfo={ NSErrorFailingURLStringKey=http://192.168.0.98:8080/api, NSErrorFailingURLKey=http://192.168.0.98:8080api, _kCFStreamErrorCodeKey=2, _kCFStreamErrorDomainKey=1 }
Dove 192.168.0.98 è l'IP assegnato a questa macchina. Se eseguo questi URL da PAW o da un browser, funziona perfettamente. Ma da un test unitario fallisce.
Dal punto di vista del mio progetto, posso semplicemente usare localhost
. Quindi questo non è un interruttore. Ma sono curioso del perché non funzioni.
Qualcuno ha idea di quale potrebbe essere il problema?
a supposizione perché quell'host non può essere raggiunto o non è stato ascoltato processo sulla porta 8080 su quell'indirizzo – Paulw11
Infatti; hai provato questo usando 'telnet' o' netcat' o qualcosa dalla riga di comando? – trojanfoe
Ho provato a utilizzare un client REST e va bene con tutti gli URL. 192.168.0.98 è in realtà questa macchina. Trace route mostra lo stesso percorso per 192.168.0.98, localhost e 127.0.0.1. È solo AfNetworking che sta avendo un problema con questo. – drekka