こんにちは、PHP で実装された Web サービスを使用して Web サーバーにデータを保存しようとしています。
私はそれを行うために以下のコードを試みています。サーバーから応答がありますが、データがサーバーに保存されません。ネットで与えられたコードをグーグルで調べたり、試したりして、1日5〜6時間を無駄にしました。しかし、何も機能していないようです:(
NSDictionary *someInfo = [NSDictionary dictionaryWithObjectsAndKeys:
txtTreasureName.text, @"name",
txtDescription.text, @"description",
txtMaterials.text, @"materials",
@"77.3833", @"longitude",
@"29.0167", @"latitude",
categoryIdStr, @"categoryId",
nil];
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:treasureInfo
options:NSJSONWritingPrettyPrinted
error:&error];
if (! jsonData) {
DLog(@"Got an error: %@", error);
} else {
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
NSString *urlString = @"http://www.myurl.php";
NSURL *url = [NSURL URLWithString:urlString];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json"
forHTTPHeaderField:@"Content-Type"];
[request setValue:@"application/json"
forHTTPHeaderField:@"Accept"];
[request setValue:[NSString stringWithFormat:@"%d",
[jsonData length]]
forHTTPHeaderField:@"Content-length"];
[request setHTTPBody:jsonData];
DLog(@"%@", request);
[[NSURLConnection alloc]
initWithRequest:request
delegate:self];
// Print json
DLog(@"JSON summary: %@", [[NSString alloc] initWithData:jsonData
encoding:NSUTF8StringEncoding]);
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:request
queue:queue
completionHandler:^(NSURLResponse *response,
NSData *data, NSError *error) {
if ([data length] &&
error == nil) {
DLog(@"%@", [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding]);
if ([self shouldDismiss]) {
[self dismissViewControllerAnimated:YES
completion:nil];
}
}
}];
}