|
Как получить ответ от сервера (и заголовок set-cookie) | ☑ | ||
---|---|---|---|---|
0
Leksandr
17.05.13
✎
12:48
|
Использую следующий код по отправке POST запроса на сайт:
ИЕ = Новый COMОбъект("InternetExplorer.Application"); ИЕ.Navigate("https://mysite.ru/block"); //маленький "костыль" от ошибки ИЕ2 = Новый COMОбъект("InternetExplorer.Application"); ИЕ2 = ИЕ; Куки = ИЕ2.Document.cookie; Редер =ИЕ2.Document.location.href; ПостДанные = "данные с логином и паролем"; ПостЗапрос = "POST " + "/block" + " HTTP/1.1 |Host: mysite.ru |Connection: keep-alive |Content-Length: 206 |Cache-Control: max-age=0 |Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |Origin: https://mysite.ru |User-Agent: Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 |Content-Type: application/x-www-form-urlencoded |Referer: "+ редер+ " |Accept-Encoding: gzip,deflate,sdch |Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4 |Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3 |Cookie: " + Куки + Символы.ВК+Символы.ПС; ИЕ.Navigate(Редер,,,ПостДанные,ПостЗапрос); //здесь получаем куки и ссылку на следующую страницу Куки = ИЕ.Document.cookie; Редер =ИЕ.Document.location.href; Для авторизации на сайте требуется использовать установленные сервером куки, которые можно посмотреть в ответе от сервера (через браузер) в заголовке set-cookie HTTP/1.1 302 Moved temporarily Date: Fri, 17 May 2013 08:42:06 GMT Server: SAP NetWeaver Application Server / ABAP 700 content-type: text/html content-length: 0 location: /block set-cookie: MYSAPSSO2=AjQxMDMBABgyADQANwAxADYAVgBFAEgAIAAgACAAIAACAAYyADIAMAADABBHADMAUAAgACAAIAAgACAABAAYMgAwADEAMwAwADUAMQA3ADAAOAA0ADIABQAEAAAADAYAAlgACQACUgD%2fASowggEmBgkqhkiG9w0BBwKgggEXMIIBEwIBATELMAkGBSsOAwIaBQAwCwYJKoZIhvcNAQcBMYHzMIHwAgEBMEQwOTELMAkGA1UEBhMCREUxHDAaBgNVBAoTE1NBUCBUcnVzdCBDb21tdW5pdHkxDDAKBgNVBAMTA0MxMQIHIBIFBgBBRjAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTMwNTE3MDg0MjA2WjAjBgkqhkiG9w0BCQQxFgQUmQVD2gN2a0z1%21YT9BAsrkN7Hi8IwCQYHKoZIzjgEAwQwMC4CFQDRV0YNoImA6EGbODJ6lVa%211w%21hHwIVAIvorLXLdh%21ceKyix34eMzpUzc8G; path=/ Pragma: public Cache-Control: public Вопрос: как в 1С посмотреть ответ от сервера и заголовок set-cookie? |
|||
1
Leksandr
17.05.13
✎
12:52
|
Возможно стоит переформулировать вопрос: есть ли возможность через COMОбъект "InternetExplorer.Application" получить ответ от сервера? (не текст страницы)
|
|||
2
oleg_km
17.05.13
✎
15:21
|
Для этого нужно использовать HTTPСоединение или WinHTTP
|
|||
3
Leksandr
17.05.13
✎
15:28
|
(2) есть пример? юзал HTTPСоединение, на сколько я понял данный конструктор не позволяет получить ответ с сервера (response headers) - вернее мы не можем его увидеть по свойствам и методам 1С
|
|||
4
Leksandr
17.05.13
✎
15:42
|
Или с WinHTTP: тоже не можем посмотреть respond headers http://yadi.sk/d/1yBOgR1J4vHXG
|
|||
5
acsent
17.05.13
✎
15:44
|
(3) можем, но только с 8.12.18
|
|||
6
acsent
17.05.13
✎
15:44
|
если ты про куки именно
|
|||
7
acsent
17.05.13
✎
15:45
|
Прокси = Новый ИнтернетПрокси;
//Прокси.Установить("http", "127.0.0.1", 8888); HTTPСоединение = Новый HTTPСоединение("egrul.nalog.ru",,, Прокси); HTTPЗапрос = Новый HTTPЗапрос; HTTPЗапрос.АдресРесурса = "#"; HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос); // Cookie = HTTPОтвет.Заголовки["Set-Cookie"]; |
|||
8
oleg_km
17.05.13
✎
15:53
|
(4) Бляха, ну кроме свойств у объекта бывают же еще методы: GetAllResponseHeaders (http://msdn.microsoft.com/en-us/library/windows/desktop/aa383961(v=vs.85).aspx)
|
|||
9
Leksandr
17.05.13
✎
17:00
|
(8) Спасибо oleg_km! Не нашел этот метод сразу. Решил так:
WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); WinHttp.Option(2,"Windows-1251"); WinHttp.Open("POST", "https://site.ru",0); WinHttp.Send(НовыйЗапрос); Кукиз= WinHttp.getResponseHeader("Set-cookie"); |
|||
10
oleg_km
17.05.13
✎
17:28
|
(9) И так можно.
>> Не нашел этот метод сразу Так может лучше сразу про весь объект почитать, какие у него есть свойства, методы, даже события (хотя события 1Су не к чему) |
|||
11
AaNnDdRrEeYy
17.05.13
✎
19:43
|
(10)Не события привязать можно как ВнешнееСобытие(), если очень нужно конечно
|
|||
12
oleg_km
17.05.13
✎
23:09
|
(11) Внешнее событие это вроде из ВК, а WinHTTP это все-таки КОМ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |