Tôi có một máy chủ chạy cục bộ (IP của tôi là 192.168.0.98) và đã thử nghiệm một số mã mạng để truy cập nó. Nguyên này được thực hiện thông qua AFNetworking, nhưng bây giờ tôi đã thực hiện nó với một NSURLSession
như thế này:NSURLSession thất bại khi cố gắng gán cho chúng tôi IP thay vì localhost hoặc 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];
Tôi đã sau đó chạy nó với những 3 URL:
http://localhost:8080/api
-> Tác phẩm.http://127.0.0.1:8080/api
-> hoạt động.http://192.168.0.98:8080/api
-> không thành công với các lỗi: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 }
đâu 192.168.0.98 là IP được gán cho máy tính này. Nếu tôi chạy các URL này từ PAW hoặc trình duyệt, nó hoạt động tốt. Nhưng từ một bài kiểm tra đơn vị nó không thành công.
Từ quan điểm của dự án của tôi, tôi chỉ có thể sử dụng localhost
. Vì vậy, đây không phải là một máy cắt giao dịch. Nhưng tôi tò mò là tại sao nó không hoạt động.
Có ai có bất kỳ ý tưởng nào về vấn đề này không?
khi đoán vì không thể truy cập máy chủ đó hoặc không có quá trình nghe trên cổng 8080 trên địa chỉ đó – Paulw11
Thật vậy; bạn đã thử nghiệm điều này bằng cách sử dụng 'telnet' hoặc' netcat' hay cái gì đó từ dòng lệnh? – trojanfoe
Tôi đã thử nghiệm điều này sử dụng một máy khách REST và nó là tốt với tất cả các URL. 192.168.0.98 thực sự là máy này. Tuyến đường theo dõi hiển thị cùng một tuyến đường cho 192.168.0.98, localhost và 127.0.0.1. Nó chỉ là AfNetworking đang gặp vấn đề với điều này. – drekka