Запрос данныхПроблема с IOS HTTP POST
NSDictionary *tmp = @{@"name":@"Kousik",@"age":@"24",@"location":@"bangalore"};
NSString *postdata = [NSString stringWithFormat:@"request = %@",tmp];
//now postdata is
//request = {
"age" = "24";
"location" = "bangalore";
"name" = "Kousik";
}
, но я хочу, чтобы это NSDictionary должен быть внутри строки, так что в сервере я могу eval
его и получить словарь обратно.
Здесь я хочу что-то вроде toString()
является java или str()
в pyhton.
Это мой запрос Http: -
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:path]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
NSError *error;
NSData *preparedPostData = [postdata dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postdata length]];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:preparedPostData ];
[NSURLConnection sendAsynchronousRequest:request
queue:backgroundQueue
completionHandler:^(NSURLResponse response,NSData data,NSError *error){
NSString *result = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
if(complect)
complect(result,error);
}
];
Update
Мой запрос собирается на сервер правильно, но проблема заключается в структуре данных. , когда я пытаюсь получить доступ к данным с помощью ключа request
, тогда он дает ошибку, потому что значение для ключа запроса не поддерживается на сервере, так как это значение имеет значение =
. Так что я хочу, чтобы правильно создать структуру данных requset. Обязательно отправьте NSDictionary как строку.
PostData должно быть что-то вроде этого
request = "{
age : 24;
location : bangalore;
name : Kousik;
}"
Я не хочу использовать приложение/JSON.
Ваш код является неполным. – Raptor
@ Raptor обновленный код – Nullify
см. Updtaed answer –