Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
Добрый день. Если у Вас есть уже полностью готовый файл, который только отправить по определенному адресу, то для большинства сервисов сойдет и простой vbs (работает из старого ИЕ, из HTA формы или просто выполняется в операционке) или js скрипт (сверх предыдущего еще и в других браузерах и ie 11). Суть универсального скрипта (конкретно с ФСС не проверял) в считывании файла, создании объекта XmlHttpRequest и отправке содержимого файла в POST запросе. В примере создается только объект с идентификатором "MSXML2.XMLHTTP", актуальный для vbs (всего вариантов идентификаторов не менее пяти). Для js есть аналогичный объект встроенный в сам браузер.
tester_remote.vbs Код: 'url_test_1 = "http://91.185.40.242:788/ws/r38/SID0000286.php"
url_test_2 = "http://192.168.240.2:789/ws/r38/SID0000286.php"
'url_test_3 = "https://gs.service.nalog.ru/static/gost-test-proc.html"
'url_test_4 = "https://gs.service.nalog.ru/static/gost-test-proc.html"
'Path="samples\ShowXmlContent_1.xml"
Path="samples\ais_request_charges.xml"
Path2="test\response.xml"
CMode=1
PDt=""
Addr=url_test_2
' WScript.Echo Addr
' это если надо что-то получить
'Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP") 'создаём http-объект
'oXMLHTTP.Open "GET", Url, 0 'подключение
'oXMLHTTP.Send 'получение файла
' чтение файла
Set oADOStream = CreateObject("ADODB.Stream")
oADOStream.Mode = 3 'разрешение на чтение и запись
oADOStream.Type = 1 'тип данных - Binary
oADOStream.Open
oADOStream.LoadFromFile Path
oADOStream.Position=0
PDt=oADOStream.Read
oADOStream.Close
'WScript.Echo PDt
Set od=CreateObject("MSXML2.XMLHTTP")
od.Open "POST", Addr, True
od.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"+coding
'If auth<>"" Then od.setRequestHeader "Authorization", auth
od.Send PDt
Do While od.readyState<4
WScript.Sleep 200
Loop
' запись ответа в файл если нужно
'Set oADOStream = CreateObject("ADODB.Stream")
'oADOStream.Mode = 3 'разрешение на чтение и запись
'oADOStream.Type = 1 'тип данных - Binary
'oADOStream.Open
'oADOStream.Write oXMLHTTP.responseBody
'oADOStream.SaveToFile Path2, 2
If od.Status<>200 Then
'error?
WScript.Echo CStr(od.Status)+" "+od.statusText+Chr(10)+Addr
CMode=0
Else
Seed=od.responseText
WScript.Echo Seed
End If
tester_remote.cmd Код:chcp 1251
cscript tester_remote.vbs
pause
Батник нужен чтобы WScript.Echo не надоедал сообщениями. На javascript еще удобнее, можно не ждать sleep, а поставить callback функцию, но под рукой примера не нашлось. Addr Path Path2 coding настроить на нужные значения. Еще там закомментировано добавление заголовка авторизации (если нужно) и сохранение ответа в файл. Минус решения в том, что нельзя добавить куки - объект игнорирует установку заколовка Cookie: , при отправке автоматом берутся куки из ИЕ если такие есть. Однако куки полученные самим объектом в ИЕ тоже не попадают. Так что если сайт требует поддержание авторизации через куки, то приходится сначала зайти на сайт в ИЕ.
Отредактировано пользователем 6 мая 2020 г. 12:14:36(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close