Я хочу отправить сообщение http с параметрами, а затем извлечь файлы cookie из ответа.IOS HttpPost с параметрами
В андроида я использую следующее:
HttpPost request = new HttpPost("http://stackoverflow.com/");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("parameter", parameter));
request.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(request);
List<Cookie> cookies = client.getCookieStore().getCookies();
Я пытался использовать следующее IOS, но он не работает для меня:
NSURL *authUrl = [[NSURL alloc] initWithString:@"http://stackoverflow.com/"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:authUrl];
[request setHTTPMethod:@"POST"];
NSString * parameters = [NSString stringWithFormat:@"login=%@&password=%@",login,password];
NSData *requestData = [NSData dataWithBytes:[parameters UTF8String] length:[parameters length]];
[request setHTTPBody:requestData];
[request setTimeoutInterval:15.0];
NSURLConnection * connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];
В методе делегата я получаю данные. Но данные выглядят так, что сообщение отправлено без параметров. Я отправляю ссылку, но не отправляет параметры. Я также попытался настроить заголовок, и это не помогло мне.
[request addValue:VALUE forHTTPHeaderField:@"login"];
И использование sendSynchronousRequest
не помогло.
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
Что я сделал не так?
В зависимости от параметров входа и пароля эта строка не будет работать должным образом: 'NSData * requestData = [NSData dataWithBytes: [parameters UTF8String] length: [parameters length]]; поскольку рассчитанная длина может быть неправильной. Ошибка, вызванная ошибкой проверки с сервера? – Wain
Все работает (длина правильная). Ошибка проверки с сервера. Но он не отправляет параметры должным образом. Я получаю тот же веб-контент, что и отправил url без параметров. – inc
Как вы доказали, что все работает? Вы проверили данные запроса, которые фактически отправлены (обнаружены с использованием прокси) или проверены данные, полученные на сервере? – Wain