Страницы: 1
RSS
VBA и запрос POST для авторизации на сайте Status 500
 
Привет! Задача автоматизировать ежедневную рутину: захожу на сайт, авторизовываюсь, захожу во вкладку отчеты, прописываю период, нажимаю выгрузить, жду, сохраняю файл. И так 8 разных сайтов.
В теме XMLHttpRequest первый день. Другие варианты Sendkeys, Shell, не рассматриваю, мало опыта, кажется не надежным, не везде работает.

И так вот код.
Код
Sub Тест()

Dim xmlhtp As Object

  Set xmlhtp = CreateObject("MSXML2.XMLHTTP")
  With xmlhtp
   .Open "POST", "https://fos.rshb-ins.ru/efrapi/auth/v1/login", False
   .setRequestHeader "Content-type", "application/json; charset=UTF-8"
   .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.77 YaBrowser/20.11.0.821 Yowser/2.5 Safari/537.36"
   .send "{""login"":""*****"",""passwd"":""******"",""captchaUuid"":null}"
    Debug.Print .Status; .statusText
     
  End With

End Sub
Пароль ввожу верный. не знаю на счет двойных кавычек но не ругается. Ошибки были 400, 415, 500
Также нет понимания как действовать после, т.к. нужно будет переходить на другую вкладку, выбирать вид отчета, дату. По идее для всего этого нужен будет только  POST. А что будет с файлом и куда он сохранится и помыслить не могу  :)  
 
Получилось здесь, но! как я и предполагал простого GET мало, файл не сформировался и не сохранился никуда. Видимо после Send чего то еще не хватает.
Код
Sub СМС()

Dim xmlhtp As Object
Dim Txt$, Url$

Url = "https://fos.smedservice.ru/efrapi/auth/v1/login"

  Set xmlhtp = CreateObject("MSXML2.XMLHTTP")
  With xmlhtp
   .Open "POST", Url, False
   .setRequestHeader "Content-type", "application/json"
   .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.77 YaBrowser/20.11.0.821 Yowser/2.5 Safari/537.36"
   .send "{""login"":""*******"",""passwd"":""*******""}"
    Debug.Print .Status; .statusText

Url = "https://fos.smedservice.ru/efrapi/insurance-service/v2/contracts/extract/?startDate=01.01.2021&endDate=29.01.2021&kind="
    
   .Open "GET", Url, False
   .setRequestHeader "Content-type", "application/json"
   .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.77 YaBrowser/20.11.0.821 Yowser/2.5 Safari/537.36"
   .send "startDate=01.01.2021&endDate=29.01.2021&kind="
    Debug.Print .Status; .statusText
    
     
  End With

End Sub
Файл нужен в формате Excel
Изменено: Joker097 - 29.01.2021 21:00:26
 
Здесь примеры посмотрите, - поймёте, чего не хватает:
https://excelvba.ru/code/GetHTTPResponse
Страницы: 1
Наверх