Как я выполняю запрос сообщения HTTP для получения объекта JSON в ответ для приложения для iPhone?

оказалось, что есть проблема с сообщениями об ошибках, приходящими с другой локалью. По-видимому, где-то между postgres, jdbc и wildfly создается сообщение об ошибке на немецком языке, а затем в принимающей части его невозможно проанализировать.

postgres не дал мне никаких других разумных вариантов, кроме немецкого языка, поэтому я не знал, как это исправить.

Я исправил исходную ошибку: в имени базы данных в URL JDBC произошла орфографическая ошибка. Исправление, которое не вызвало сообщение об ошибке. И поскольку сейчас нет сообщения об ошибке, нет синтаксического анализа для сбоя.

11
задан pasawaya 21 June 2012 в 18:36
поделиться

3 ответа

Это - код, которые работают на запрос сообщения JSON, Платформа TouchJSON используется для парсинга JSON, 'schwa' спасибо.

NSArray *keys = [NSArray arrayWithObjects:@"username", @"password", @"preference", @"uid", nil];
NSArray *objects = [NSArray arrayWithObjects:@"accuser", @"accpass", @"abc_region", @"100", nil];
NSDictionary *theRequestDictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];

NSURL *theURL = [NSURL URLWithString:@"http://url.com/request.php"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:theURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10.0f];
[theRequest setHTTPMethod:@"POST"];

[theRequest setValue:@"application/json-rpc" forHTTPHeaderField:@"Content-Type"];
NSString *theBodyString = [[CJSONSerializer serializer] serializeDictionary:theRequestDictionary];
NSLog(@"%@", theBodyString);
NSData *theBodyData = [theBodyString dataUsingEncoding:NSUTF8StringEncoding];
// NSLog(@"%@", theBodyData);
[theRequest setHTTPBody:theBodyData];

NSURLResponse *theResponse = NULL;
NSError *theError = NULL;
NSData *theResponseData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&theResponse error:&theError];
NSString *theResponseString = [[[NSString alloc] initWithData:theResponseData encoding:NSUTF8StringEncoding] autorelease];
NSLog(theResponseString);
NSDictionary *theResponseDictionary = [[CJSONDeserializer deserializer] deserialize:theResponseString];
NSLog(@"%@", theResponseDictionary);
NSString *theGreeting = [theResponseDictionary objectForKey:@"greeting"];
[self setValue:theGreeting forKey:@"greeting"];
30
ответ дан 3 December 2019 в 02:21
поделиться

Едва ли уверенный, что Ваш вопрос точно. Но google "TouchJSON", который должен помочь Вам начать.

3
ответ дан 3 December 2019 в 02:21
поделиться

Извините за ошибки и утечки памяти, но как насчет чего-то как:

CFURLRef url = CFURLCreateWithString(NULL, CFSTR("http://example.com/post"), NULL);
CFHTTPMessageRef msg = CFHTTPMessageCreateRequest(
    NULL,
    CFSTR("POST"),
    url,
    kCFHTTPVersion1_1);

const char *body = "key=value&id=30293";
CFDataRef bodyData = CFDataCreate(NULL, body, strlen(body));
CFHTTPMessageSetBody(msg, bodyData);

CFReadStreamRef myReadStream = CFReadStreamCreateForHTTPRequest(NULL, myRequest);
CFReadStreamOpen(myReadStream);
CFHTTPMessageRef myResponse = CFReadStreamCopyProperty(
    myReadStream,
    kCFStreamPropertyHTTPResponseHeader);

//
// Handle myResponse
//

CFReadStreamClose(myReadStream);
CFRelease(myReadStream);
CFRelease(bodyData);
CFRelease(msg);
CFRelease(url);
0
ответ дан 3 December 2019 в 02:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: