2013-04-21 6 views
1

Я хочу отправить сообщение 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]; 

Что я сделал не так?

+0

В зависимости от параметров входа и пароля эта строка не будет работать должным образом: 'NSData * requestData = [NSData dataWithBytes: [parameters UTF8String] length: [parameters length]]; поскольку рассчитанная длина может быть неправильной. Ошибка, вызванная ошибкой проверки с сервера? – Wain

+0

Все работает (длина правильная). Ошибка проверки с сервера. Но он не отправляет параметры должным образом. Я получаю тот же веб-контент, что и отправил url без параметров. – inc

+0

Как вы доказали, что все работает? Вы проверили данные запроса, которые фактически отправлены (обнаружены с использованием прокси) или проверены данные, полученные на сервере? – Wain

ответ

0

Источник работает правильно, но я отправлял запрос на неправильный сайт.