여기에서 SBJson framework을 사용하여 비동기 호출을 파이썬 서버에 보냈습니다. 동일한 요청으로 연속 다중 호출의 경우 응답 문자열에 null
값을 제공하십시오. 내가 뭘하려 여기Iphone-SBJson은 다중 요청 전송에서 늦은 응답을받는 연결에 대해 null responseData를 반환합니다.
: 나는 같은 요청을 보내면,이, 을 발견
- (NSURLConnection *) GetHttpConnection:(NSString *)Path:(NSDictionary *)requestData:(UIView *)appView {
NSString *jsonReq = nil;
NSData *reqData = nil;
if (requestData != nil) {
jsonReq = [requestData JSONRepresentation];
reqData=[NSData dataWithBytes:[jsonReq UTF8String] length:[jsonReq length]];
}
NSString *urlString = [NSString stringWithFormat:@"%@/%@", URL, Path];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
if (reqData) {
[request setHTTPBody:reqData];
}
[request setHTTPMethod:@"POST"];
NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
if (connection) {
responseData = [[NSMutableData data] retain];
}
return connection;
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
[connection release];
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"Connection Finish Loading >>>>> %@",responseString);
responseData = nil;
if (responseString && [responseString JSONValue] != nil) {
// process response string and send response back to delegate method
}
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSMutableData*)data {
[responseData appendData:data];
}
NSlog
응답을 추적 한 후 (업데이트 세부 사항 버튼을 눌러) 3 회 connectionDidFinishLoading
는 3 회를 호출한다 그것을 부른다. (1 개의) 요청에 대해 각각의 응답 데이터는 null
을 반환합니다. 그 이유는 JSON 아래에 명시된
JSONValue 실패했습니다. 오류 추적은 다음과 같습니다 ( "오류 도메인 = org.brautaset.JSON.ErrorDomain 코드 = 11 \"문자열 \의 예기치 않은 종료 "사용자 정보 = 0x909d4b0 {문자열의 NSLocalizedDescription = 예기치 않은 끝}"
어떻게 나는이 시나리오에서 극복? 또는 코드에 문제가 있나요?
감사합니다!
당신도'- (void) connection : (NSURLConnection *) connection didReceiveData : (NSData *) data' 위임 메소드를 구현하고 있습니까? 나는 그것을 볼 수 없다. – lupatus
@Yajushi, FYI'requestData'의 여는 중괄호는 닫히지 않는다. – vladr
편집을 확인하십시오. – Yajushi