2014-07-16 5 views
1

Я пишу простой журнал на веб-сайт, перейдите к странице и разбору приложения для iOS. Мне удалось создать почтовый запрос, но он, похоже, не хочет входить в систему. Я не знаю, почему это может быть неудачно, потому что я получаю статус 200. По общему признанию, я получаю это, даже если я намеренно вводя неправильные учетные данные , Есть идеи? (Код в Swift)HTTP-сообщение с ошибкой

var url = NSURL(string:"https://www.example.com/ps/signin.html") 
    var request = NSMutableURLRequest(URL: url) 
    request.HTTPMethod = "POST" 
    var dataString = "timezoneOffset=-600&userid1=xxx&userid=xxx&pwd=xxx&x=31&y=12" 
    let data = (dataString as NSString).dataUsingEncoding(NSUTF8StringEncoding) 
    request.HTTPBody = data 
    var connection = NSURLConnection(request: request, delegate: self, startImmediately: false) 
    println("sending request : \(request)") 
    connection.start() 

Так я получаю ответ обратно, со статусом 200, и, казалось бы, HTML-код для страницы входа снова.

+0

Посмотрите на запрос авторизации, посланного через веб-браузер. Затем просмотрите запрос, отправленный вашим вышеуказанным кодом. Как они отличаются? –

+0

Я получил строку запроса из запроса на вход, но не проверял другие заголовки. Я дам вам быстрый взгляд. – chris

+1

Да, я имею в виду весь запрос. Тело - всего лишь одна часть. Я использую прокси (например, [Charles] (http://www.charlesproxy.com/)) для сравнения всех аспектов запросов. Или даже http://requestb.in/ –

ответ

0

Проблема в том, что вы отправляете заявку на вход в систему: https://www.example.com/ps/signin.html. Вы должны POST в том же месте в HTML форму на сообщения, а именно: https://www.example.com/psp/ps/?cmd=login&languageCd=ENG

Попробуйте изменить URL:

var url = NSURL(string:"https://www.example.com/psp/ps/?cmd=login&languageCd=ENG") 
+0

Это дает мне более многообещающий доход, но мне кажется, что мне нужна промежуточная страница обработки, а не место назначения. но это еще одна проблема, спасибо. – chris

+0

На самом деле я получаю прекрасный код статуса 500. – chris

+0

Дополнительная информация о сервере, который вы пытаетесь войти в систему, была бы полезна, но на самом деле это не вопрос «Свифт». Это может помочь вам увидеть сетевые запросы в вашем браузере при входе в веб-форму - у Chrome, Firefox и Safari есть возможность сделать это с помощью инструментов Network Inspector. – Tim

Смежные вопросы