내가 JSON에 대해 거의 아무것도 모르는 나는 단지 아이폰을 사용하여 서버에 요청을 보내고 그것에서 오는 데이터를 읽을 필요가있다.JSON IPHONE : JSON 요청을 보내고 서버에서 데이터를 가져 오는 방법은 무엇입니까?
나는 jason-framework 을 사용해 보았지만 문서를 읽은 후에는 개체를 생성하고 요청시 보내는 방법을 알 수 없었습니다. 그래서 저는 여기에서 보았던 또 다른 코드를 적용하기로 결정했습니다.
내가 필요로하는 객체는 이것이다 :
{ "코드"XXX} 여기
나는 문제가있다. 이 xxx는 NSData이므로이 데이터를 문자열로 변환 한 다음이 문자열을 사용하여 객체를 작성하고 요청시이 데이터를 보내야한다고 생각합니다. YYY는 10000 및 99999
사이의 숫자입니다 이 내가 지금 가지고있는 코드 :
는 서버 응답
가{ "YYY" "대답은"} 형태로, 또한 JSON 객체입니다 멀리.
- (NSString *)checkData:(NSData) theData {
NSString *jsonObjectString = [self encode:(uint8_t *)theData length:theData.length];
NSString *completeString = [NSString stringWithFormat:@"http://www.server.com/check?myData=%@", jsonObjectString];
NSURL *urlForValidation = [NSURL URLWithString:completeString];
NSMutableURLRequest *validationRequest = [[NSMutableURLRequest alloc] initWithURL:urlForValidation];
[validationRequest setHTTPMethod:@"POST"];
NSData *responseData = [NSURLConnection sendSynchronousRequest:validationRequest returningResponse:nil error:nil];
[validationRequest release];
NSString *responseString = [[NSString alloc] initWithData:responseData encoding: NSUTF8StringEncoding];
NSInteger response = [responseString integerValue];
NSLog(@"%@", responseString);
[responseString release];
return responseString;
}
- (NSString *)encode:(const uint8_t *)input length:(NSInteger)length {
static char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/=";
NSMutableData *data = [NSMutableData dataWithLength:((length + 2)/3) * 4];
uint8_t *output = (uint8_t *)data.mutableBytes;
for (NSInteger i = 0; i < length; i += 3) {
NSInteger value = 0;
for (NSInteger j = i; j < (i + 3); j++) {
value <<= 8;
if (j < length) {
value |= (0xFF & input[j]);
}
}
NSInteger index = (i/3) * 4;
output[index + 0] = table[(value >> 18) & 0x3F];
output[index + 1] = table[(value >> 12) & 0x3F];
output[index + 2] = (i + 1) < length ? table[(value >> 6) & 0x3F] : '=';
output[index + 3] = (i + 2) < length ? table[(value >> 0) & 0x3F] : '=';
}
ret
urn [[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding] autorelease];
}
이 코드는 모두 오류입니다. 또는 BAD URL 또는 Java 예외.
이 코드에 어떤 문제가 있습니까?
너희들은 ... 어떻게 쌍 ("코드", "내을 NSData 여기에 문자열로 변환")를 사용하여 객체를 인코딩 방법을 가르쳐주십시오 JSON 프레임 워크를 사용하여
덕분에 다른 솔루션을 제공하려는 경우 어떤 도움이든.
감사합니다 !!!!!! 그게 다야!ASIHTTPRequest 라이브러리 설명서는 매우 불완전하고 외면적인 것이지 귀하의 지침을 사용하여 작동하도록 만들었습니다. 완전한! 당신은 D 남자입니다! – SpaceDog
그것은 당신을 위해 일한 것을 기쁘게 생각합니다. ASIHTTPRequest를 포기하지 마십시오. 일단 당신이 그것에 익숙해지면 꽤 간단합니다. 유일한 문제는 setDidFinishSelector/setDidFailSelector 메서드를 제공하고 네트워킹이 실패 할 때 알림을받을 수 있도록 대리인을 설정하는 것입니다. 너무 많은 셀 데드 존이있을거야. – Ramin