Использую компонент synapse для работы с HTTPS. И тут потребовалось отправить Post запрос. Отправляю, получаю ошибку:
HTTP/1.1 400 Bad Request
Server: nginx/0.7.59
Date: Wed, 25 Jan 2012 17:25:33 GMT
Content-Type: text/html
Content-Length: 173
Connection: close
я так понимаю что неправильно сформирован запрос, но я вроде собрал все что отправляется в form, вот мой текущий запрос:
PHP код:
Data.WriteString('act=login');
Data.WriteString('soft=1');
Data.WriteString('q='+q);
Data.WriteString('ip_h='+ip_h);
Data.WriteString('from_host='+from_host);
Data.WriteString('from_protocol='+from_protocol);
Data.WriteString('to='+too);
Data.WriteString('expire='+expire);
Data.WriteString('email='+Edit1.text);
Data.WriteString('pass='+Edit2.text);
Data.Position:=0;
HTTP.Document.LoadFromStream(Data);
HTTP.HTTPMethod('POST','https://login.vk.com/');
Memo2.Lines.AddStrings(HTTP.Headers);
или он же в GET форме:
PHP код:
HTTPGetText('https://login.vk.com/?act=login&soft=1&q=1&ip_h='+ip_h+'&from_host='+from_host+'&from_protocol='+from_protocol+'&to='+too+'&expire='+expire+'&email='+Edit1.text+'&pass='+Edit2.text,dat);
Парсю вот с этой страницы
обрезал начало и конец чтоб не мешались)
PHP код:
function login() {
ge('expire').value = (isChecked('expire_checkbox')) ? 1 : 0;
ge('login_submit').submit();
return false;
}
function approve() {
location.href = "https://oauth.vk.com/grant_access?hash=c37ade320f0ee143ac&client_id=2761850&settings=1027&redirect_uri=http%3A%2F%2Foauth.vk.com%2Fblank.html&response_type=token&state=&token_type=0";
}
function cancel() {
location.href = "https://oauth.vk.com/grant_access?hash=c37ade320f0ee143ac&client_id=2761850&settings=1027&redirect_uri=http%3A%2F%2Foauth.vk.com%2Fblank.html&cancel=1&state=&token_type=0";
}
if (parent && parent != window) {
location.href = "https://oauth.vk.com/blank.html";
}
// ]]>
</script>
</head>
</html>
<body class="VK">
<div class="scroll_fix_wrap" id="page_wrap">
<div>
<div id="page_layout">
<div id="page_header" class="p_head p_head_l0">
<div class="back"></div>
<div class="left"></div>
<div class="right"></div>
<div class="content">
<a id="home" href="http://vkontakte.ru/" target="_blank" class="fl_l"></a>
<div class="auth_items">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="oauth_page_wrap">
<div class="oauth_page_main">
<div class="oauth_header">
Вход в систему
</div>
<div class="oauth_access_cont">
<div id="box" class="box">
<div class="oauth_info">
<div class="app_info">
<img src="http://vkontakte.ru//images/dquestion_d.gif" />
</div>
<div class="oauth_error">
</div>
https://login.vk.com/?act=login&soft=1&q=1&ip_h=40e3d75bba0f460b9d&from_host=oauth.vk.com&from_protocol=http&to=aHR0cDovL29hdXRoLnZrLmNvbS9vYXV0aC9hdXRob3JpemU/Y2xpZW50X2lkPTI3NjE4NTAmcmVkaXJlY3RfdXJpPWh0dHAlM0ElMkYlMkZvYXV0aC52ay5jb20lMkZibGFuay5odG1sJnJlc3BvbnNlX3R5cGU9dG9rZW4mc2NvcGU9MTAyNyZzdGF0ZT0mZGlzcGxheT1wYWdl&expire=0&email=kingcss@mail.ru&pass=Kingcss27037310
<form method="POST" id="login_submit" action="https://login.vk.com/?act=login&soft=1">
<input type="hidden" name="q" value="1">
<input type="hidden" name="ip_h" value="40e3d75gaweb9d" />
<input type="hidden" name="from_host" value="oauth.vk.com">
<input type="hidden" name="from_protocol" value="http">
<input type="hidden" name="to" value="aHR0cDovL29hdXRoLnZrLmNvbS9vYXV0aC9hdXRob3JpemU/Y2xpZW50X2lkPTI3NjE4NTAmcmVkaXJlY3RfdXJpPWh0dHagaggagwvYXV0aC52ay5jb20lwawaggawuay5odG1sJnJlc3BvbnNlX3R5cGU9dG9rZW4mc2NvcGU9MTAyNyZzdGF0ZT0mgaheT1wYWdl">
<input type="hidden" id="expire" name="expire" value="0">
<table class="login">
<tr>
<td class="label">Телефон или e-mail:</td>
<td><input type="text" name="email" value=""></td>
</tr>
<tr>
<td class="label">Пароль:</td>
<td><input type="password" name="pass"></td>
</tr>
<tr>
<td class="label"></td>
<td><div class="checkbox fl_l" id="expire_checkbox" onclick="checkbox(this)"><div></div>Чужой компьютер</div></td>
</tr>
</table>
</form>
</div>
</div>
</div>
<div class="bottom_buttons">
<div class="button_gray fl_r"><button id="install_cancel" onclick="return cancel();">Отмена</button></div>
<div class="button_blue fl_r"><button id="install_allow" onclick="return login();" type="submit">Войти</button></div>
<br class="clear" />
</div>
</div>
</div>
Парсю правильно, в переменных именно те значения которые на странице в hidden, Если вбиваю Get запрос вручную в браузере, подставляя значения переменных все нормально.