Поместите JSON-кодированный массив как NSData из NSURLResponse в NSArray - PullRequest
2 голосов
/ 02 октября 2010

Я не могу заставить это работать:

NSString *post = [NSString stringWithFormat:@"userudid=%@", [udid stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

NSLog(@"%@",post);
NSData *postData = [NSData dataWithBytes:[post UTF8String] length:[post length]]; 
//[udid dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

NSLog(@"%@",postData);
//NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.myserver.com/myapp/readtags2.php"]];
[request setURL:url];
[request setHTTPMethod:@"POST"];
//[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLResponse *response;
NSError *error;
NSData *urlData = [NSURLConnection sendSynchronousRequest:request 
    returningResponse:&response error:&error];

NSString *content = [NSString stringWithUTF8String:[urlData bytes]];
NSLog(@"responseData: %@", content);

правильно ли сформирован POST? Потому что я могу заставить его работать с помощью публикации html формы вручную в тот же файл php, но я ничего не получаю, когда делаю это с iOS

1 Ответ

1 голос
/ 24 февраля 2011

Возможно, вам легче будет выполнять HTTP POST с ASIHTTPRequest.

Отправка формы с помощью ASIHTTPRequest объясняется в разделе «Отправка формы POST с помощью ASIFormDataRequest» здесь: http://allseeing -i.com / ASIHTTPRequest / Как использовать

В противном случае взгляните на NSURLResponse, проверьте код ответа и посмотрите, считает ли iOS успешным POST.

Другая вещь, которую вы можете использовать для проверки, - это инструмент, такой как wireshark, для сравнения сетевого трафика из вашей веб-формы POST с трафиком из вашей iOS POST. Это выглядит как будто вы все делаете правильно, но лучший способ убедиться в этом - что-то вроде wireshark.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...