我正在将这个NSURLConnection与代表一起使用.
nsconnection = [[NSURLConnection alloc] initWithRequest:request
delegate:self startImmediately:YES];
Run Code Online (Sandbox Code Playgroud)
问题是网站根本没有回应.没什么,只是在浏览器中旋转空白页面,没有失败.在我的代表中,我处理失败,但当网站没有响应时,代表不会被调用.有关如何超时连接的任何想法?
我有以下问题.在NSMutableURLRequest使用该HTTP方法POST时,将忽略为连接设置的超时间隔.如果互联网连接有问题(错误的代理,坏的DNS),网址请求在大约2-4分钟后失败,但没有 NSLocalizedDescription = "timed out";
NSUnderlyingError = Error Domain=kCFErrorDomainCFNetwork Code=-1001 UserInfo=0x139580 "The request timed out.
Run Code Online (Sandbox Code Playgroud)
如果使用的http方法是GET它工作正常.连接async结束了https.
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setTimeoutInterval:10];
//Set the request method to post
[request setHTTPMethod:@"POST"];
if (body != nil) {
[request setHTTPBody:body];
}
// Add general parameters to the request
if (authorization){
[request addValue: authorization forHTTPHeaderField:@"Authorization"];
}
[request addValue: WS_HOST forHTTPHeaderField:@"Host"];
[request addValue:@"text/xml" forHTTPHeaderField:@"Content-Type"];
[[NSURLCache …Run Code Online (Sandbox Code Playgroud) 我正在使用URL后台会话将pdf上传作为数据流,使用ios版本> 9.0.我将超时间隔设置为300秒.它根本不起作用.10秒后,它会出现超时错误.
下面给出了一段代码
NSTimeInterval reqTimeInterval = 300.0f;
- (NSURLSession *)uploadSessionForMrNo:(NSString *)mrNo
userRoleId:(NSString *)userRoleId
timestamp:(NSString *)timestamp {
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
queue.maxConcurrentOperationCount = 4;
NSString *backgroundSessionIdentifier = [NSString stringWithFormat:@"backgroundPdfUploadIdentifier_%@",mrNo];
NSURLSessionConfiguration *backgroundSession = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:backgroundSessionIdentifier];
backgroundSession.discretionary = true;
NSURLSession *session = [NSURLSession sessionWithConfiguration:backgroundSession delegate:self delegateQueue:queue];
[session setAccessibilityLabel:mrNo];
[session setAccessibilityValue:userRoleId];
[session setAccessibilityHint:timestamp];
return session;
}
- (void)uploadPdfRequest:(NSURLRequest *)request
forMrNo:(NSString *)mrNo
userRoleId:(NSString *)userRoleId
andTimestamp:(NSString *)timestamp {
NSURLSession *session = [self uploadSessionForMrNo:mrNo userRoleId:userRoleId timestamp:timestamp];
NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request];
NSLog(@"postDataTask %@ timeout %f",postDataTask,request.timeoutInterval); …Run Code Online (Sandbox Code Playgroud) 我需要使用UIRequest设置超时15秒或30秒,但它始终采用默认值.有没有办法设置连接的最小超时.
ios ×3
objective-c ×3
iphone ×2
cocoa ×1
http ×1
ios11 ×1
ipad ×1
macos ×1
nsurlrequest ×1
nsurlsession ×1
post ×1
timeout ×1