이것은 웹 서비스 호출입니다. 웹 서비스를 지속적으로 호출하는 경우 시간 초과 오류가 발생하기 시작하지만 인터넷을 사용할 수 있습니다. 안드로이드iOS : 인터넷 연결을 사용할 수 있지만 웹 서비스 호출에서 시간 초과 오류가 발생합니다. 동일한 웹 서비스가 안드로이드에서 작동 중입니다.
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
request.timeoutInterval = 30;
request.URL = [NSURL URLWithString:finalURL];
request.HTTPMethod = @"POST";
[request setValue:@"123456" forHTTPHeaderField:@"header"];
if (parameters != nil) {
NSMutableData * body = [[NSMutableData alloc] init];
NSString *boundary = @"---------------------------V2ymHFg03ehbqgZCaKO6jy";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField:@"Content-Type"];
for (id key in parameters) {
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", key] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"%@", [parameters objectForKey:key]] dataUsingEncoding:NSUTF8StringEncoding]];
}
[request addValue:[NSString stringWithFormat:@"%lu", (unsigned long)[body length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:body];
}
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
// This will get the NSURLResponse into NSHTTPURLResponse format
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
if (httpResponse.statusCode == 200) {
NSMutableDictionary *JSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Response = %@",JSON);
});
} else {
NSLog(@"Error = %@",error);
}
}];
올바른 URL을 치고 있는지 확인할 수 있습니까? 또한, 우체부 또는 기타 유사한 http 클라이언트에서 URL과 본문을 치고 해당 클라이언트가 작동하는지 확인하십시오. – 7vikram7
timeoutInterval 값을 변경하십시오. 나는 디폴트 값이 60이라고 생각한다. –
우편 배달부와 안드로이드 폰에서 잘 작동하고있다. –