EDIT. Я редактировал OP со всеми предложениями, которые я получил от людей, поэтому это последнее (и его все еще не работает).
У меня есть следующий код, который должен POST некоторые данные в .php файл, который у меня есть (а затем в базу данных, но это выходит за рамки этого вопроса).
В мой метод передаю массив, содержащий некоторые строки.
-(void)JSON:(NSArray *)arrayData {
//parse out the json data
NSError *error;
//convert array object to data
NSData* JSONData = [NSJSONSerialization dataWithJSONObject:arrayData
options:NSJSONWritingPrettyPrinted
error:&error];
NSString *JSONString = [[NSString alloc] initWithData:JSONData
encoding:NSUTF8StringEncoding];
NSString *URLString = [NSString stringWithFormat:@"websitename"];
NSURL *URL = [NSURL URLWithString:URLString];
NSLog(@"URL: %@", URL);
NSMutableURLRequest *URLRequest = [NSMutableURLRequest requestWithURL:URL
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
NSData *requestData = [NSData dataWithBytes:[JSONString UTF8String] length:[JSONString length]];
NSString *requestDataString = [[NSString alloc] initWithData:requestData
encoding:NSUTF8StringEncoding];
NSLog(@"requestData: %@", requestDataString);
[URLRequest setHTTPMethod:@"POST"];
NSLog(@"method: %@", URLRequest.HTTPMethod);
[URLRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[URLRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[URLRequest setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[URLRequest setHTTPBody: requestData];
NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:URLRequest delegate:self];
if (connection) {
NSMutableData *receivedData = [[NSMutableData data] retain];
NSString *receivedDataString = [[NSString alloc] initWithData:receivedData
encoding:NSUTF8StringEncoding];
NSLog(@"receivedData: %@", receivedDataString);
}
//potential response
NSData *response = [NSURLConnection sendSynchronousRequest:URLRequest returningResponse:nil error:nil];
//convert response so that it can be LOG'd
NSString *returnString = [[NSString alloc] initWithData:response encoding:NSASCIIStringEncoding];
NSLog(@"RETURN STRING: %@", returnString);
}
ПРИМЕЧАНИЕ. У меня есть фактический URL моего сайта в коде, чтобы каждый мог проверить, хотят ли они.
Тогда есть сторона .php вещей, где все, что я пытаюсь сделать, это искать любой вход вообще (но я ничего не получаю).
<html>
<body>
<?php
echo "Connection from iOS app to MySQL database<BR>";
echo '<pre>'.print_r($GLOBALS,true).'</pre>';
?>
</body>
</html>
Все, что я действительно пытаюсь сделать прямо сейчас, - это подтверждение того, что данные проходят через, повторяя его на странице, а затем просматривая страницу из моего приложения (пока данные не показываются).
Выходной файл .php:
<html>
<body>
Connection from iOS app to MySQL database<BR>'Array
(
)
'<pre>Array
(
[_GET] => Array
(
)
[_POST] => Array
(
)
[_COOKIE] => Array
(
)
[_FILES] => Array
(
)
[GLOBALS] => Array
*RECURSION*
)
</pre> </body>
</html>