NSUrlConnection sendAsynchronousRequest를 사용하여 노드 POST 서버에 간단한 POST 요청을 보냅니다. tcpdumps를 분석하여 요청 헤더와 요청 본문이 2 개의 개별 TCP 패킷으로 분할되는 경우가 있음을 알았습니다.POST의 헤더와 본문 간의 무작위 대기 시간
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:url]];
[request setTimeoutInterval:3];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-type"];
[request setHTTPBody:postData];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler: ^(NSURLResponse *response, NSData *POSTReply, NSError *error) { }];
문제점은 때때로 헤더 우리 API 연결을 열고, 그리고 여러 초 후에 신체 패킷을 전송하는 서버로 전송된다는 것이다. 헤더와 본문간에 1 초 이상 지연이 발생하며 서버 측에서 100 건의 요청이 무작위로 발생합니다. Google API의 대기 시간 중 가장 큰 단일 소스입니다.
대부분의 요청에서 헤더와 본문은 거의 같은 크기 (각각 200 바이트)입니다.
이전에 본 사람이 있습니까?
기본 대기열에서 http 요청을 보내지 마십시오. – x4snowman