编辑:我已经编辑了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方面的东西,我所想做的就是寻找任何输入(但我什么也没有).
echo "Connection from iOS app to MySQL database
";
echo '
'.print_r($GLOBALS,true).'';
?>
所有我现在真的想要做的是确认数据正在通过,通过回到页面,然后从我的应用程序读取页面(到目前为止,数据还没有出现).
输出的.php:
Connection from iOS app to MySQL database
'Array
(
)
'
Array
(
[_GET] => Array
(
)
[_POST] => Array
(
)
[_COOKIE] => Array
(
)
[_FILES] => Array
(
)
[GLOBALS] => Array
*RECURSION*
)