Я отправляю объект массива на php сервер. Я не уверен, как отправить данные формата массива на сервер php
когда я пытаюсь отправить формат массива, мой формат массива выглядит следующим образом. Как удалить скобки и двойные кавычки
"(
vdsvvdsvdsv
)"
Пожалуйста, дайте мне знать, как я могу сделать это правильно.
Эта линия
[request setHTTPBody:[[NSString stringWithFormat:@"userid=%@&projectSponsor=%@&projectid=%@", userId,addSponsorEmailStringInModel,projectId] dataUsingEncoding:NSUTF8StringEncoding]];
На самом деле должно быть 2 части
NSString *emails = [addSponsorEmailStringInModel componentsJoinedByString:@","];
[request setHTTPBody:[[NSString stringWithFormat:@"userid=%@&projectSponsor=%@&projectid=%@", userId,emails,projectId] dataUsingEncoding:NSUTF8StringEncoding]];
Так что вы явно конвертируете свой массив в формат строки, ожидаемый сервером
Вам нужно конвертировать NSArray
в NSData
а затем в строку JSON перед отправкой на сервер.
Надеюсь, эта ссылка поможет: https://stackoverflow.com/a/10323594/3336675
РЕДАКТИРОВАТЬ:
NSMutableString *jsonString = [[NSMutableString alloc]initWithString:@"{\"userId\":\""];
[jsonString appendFormat:@"%@\",\"projectSponsor\":\"%@\",\"projectId\":\"%@\"}", userId, addSponsorEmailStringInModel, projectId];
затем
NSString *urlString = [NSString stringWithFormat:@"%@",@"http://url.com/..."];
NSMutableData *responseData;
NSString* escapedUrlString =[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL* serverUrl = [NSURL URLWithString:escapedUrlString];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:serverUrl];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; //set value according to your requirement
затем
[request setHTTPBody:[NSString stringWithString:jsonString] dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPMethod:@"POST"];
И тогда, если вы хотите возвращаемое значение, используйте это
NSURLResponse *res = nil;
NSError *err = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&res error:&err];//or asynchronous, as you wish
data
теперь содержит возвращенный объект JSON
Это зависит от кода сервера, который написан для обработки входных потоков.
По сути, для передачи на сервер нужны данные в формате XML или JSON.
Для JSON выберите простой парсер вроде SBJSONParser и передать массив к нему. (С sbjson мы можем даже конвертировать)
Для XML вам потребуется использовать NSDATA для преобразования данных в байты, а затем передать их в тег.