Я разрабатываю приложение для iPhone, и я застрял в одном вызове, мне нужно отправить данные через POST, веб-программист django сообщает мне, что приложение должно получатьНе удается отправить данные с объектива-c через POST
param_one = request.POST['param_one']
param_two = request.POST['param_two']
, но я не могу сделать это, чтобы отправить любые данные ...
Я учусь Objective-C, поэтому, пожалуйста, не могли бы вы сказать мне, как сделать это с примером?
PS: все другие вызовы, которые не посылают никаких данных или передавать данные через URL (GET метод) работает отлично, так что я делаю подключение правильно
Вот код, я использую:
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:@"somename" forKey:@"user"];
NSString *jsonString = [dict JSONRepresentation];
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://web.com/custom/url/call/"]];
[request setValue:jsonString forHTTPHeaderField:@"json"];
[request setHTTPMethod:@"POST"];
[request addValue:csrf forHTTPHeaderField:@"X-CSRFToken"];
[request setHTTPBody:jsonData];
senddata = [[NSURLConnection alloc] initWithRequest:request delegate:self];
Спасибо Томми, что-то странное продолжает со мной, может быть, вы знаете, почему. Если я добавлю «/» в конце URL-адреса, я получаю это сообщение:
Причина, по которой выдается сообщение:
Вы знаете, почему? – SascuashЯ недостаточно осведомлен, чтобы быть полностью уверенным в том, как Django обрабатывает токен подделки подпрограммы (CSRF); если ваш парень-сервер ожидает, что он будет работать через файлы cookie, убедитесь, что вы сделали вызов типа '[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy: NSHTTPCookieAcceptPolicyAlways];' и механизмы запроса HTTP для iOS поймают, сохранят и затем присоединяют к ним соответствующие файлы cookie , – Tommy
@Sascuash Значок CSRF Django подробно объясняется в документах Django. В принципе, вы должны делать то, что предлагает Томми, и искать токен CSRF в файле cookie и возвращать его в свой запрос. Django Csrf Middleware ищет этот токен для любых небезопасных HTTP-запросов, одним из которых является POST. – ZachS