iOS: как мне обработать следующий запрос параметров?

Мне было интересно, как мне обработать следующий параметр PUT запрос? Как мне сохранить параметр (при условии использования NSDictionary) так что я могу отправить его на сервер с запущенным php. Любые советы или предложения приветствуются.

curl -X PUT -d {"questions":[{"type":"control_head" }]}

постскриптум выше то, что дал мне документ API. {"questions":[{"type":"control_head" }]} это параметр, который мне нужно использовать на тот случай, если вы этого не поняли.

1

Решение

Если сделать это самостоятельно, вы бы создали NSMutableURLRequest объект, измените его, как предложено вашим curl (например. PUT запрос, тело JSON и т. д.), а затем инициируйте запрос с помощью NSURLConnection или же NSURLSession,

Это дает что-то вроде:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"PUT";
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSDictionary *parameters = @{@"questions":@[@{@"type": @"control_head"}]};
NSError *error;
request.HTTPBody = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:&error];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
if (!data) {
NSLog(@"sendAsynchronousRequest error: %@", connectionError);
return;
}

// parse the response here; given that the request was JSON, I assume the response is, too:

NSError *parseError;
id responseObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
if (!responseObject) {
NSLog(@"parsing response failed: %@", parseError);
NSLog(@"body of response was: %@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
return;
}

// now you can look at `responseObject`
}];

Вы можете упростить это дальше, используя библиотеку, как AFNetworking:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
NSDictionary *parameters = @{@"questions":@[@{@"type": @"control_head"}]};
[manager PUT:urlString parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];

(Я не проверял синтаксис запроса AFNetworking, но это что-то в этом роде.)

0

Другие решения

Других решений пока нет …