• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Вызов POST (NotesHTTPRequest)

Irina

Green Team
31.05.2019
145
2
BIT
0
помогите, пожалуйста
есть агент , который передает данные на внешние сервисы, сейчас сторонняя сторона поменяла данные и теперь возникли проблемы
Код:
    Xml = |<?xml version="1.0" encoding="UTF-8" ?>
                <message xmlns="url">
                <login>| & логин & |</login>
                <body content-type='text/plain'>| & textValue & |</body>
                </message>|
    Set objXmlHttp = CreateObject("Msxml2.XMLHTTP")
    Call objXmlHttp.Open("POST", "url", False)
    Call objXmlHttp.Send(Xml)
но POST выдает ошибку msxml3.dll: Не удается найти указанный ресурс

обращаюсь к сторонней стороне, но все что они советуют , что формат запроса должен быть json методом POST.
то есть в таком виде, как раньше было настроено, уже нет возможности использовать? возможно подскажете, что может вызывать ошибку?
 

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
4
Проверьте работу другим средством, например curl или Servistate HTTP Editor.
Крайне не рекомендуется использовать OLE-объекты - лучше java.
 
  • Нравится
Реакции: Irina

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 963
611
BIT
319
помогите, пожалуйста
есть агент , который передает данные на внешние сервисы, сейчас сторонняя сторона поменяла данные и теперь возникли проблемы
Код:
    Xml = |<?xml version="1.0" encoding="UTF-8" ?>
                <message xmlns="url">
                <login>| & логин & |</login>
                <body content-type='text/plain'>| & textValue & |</body>
                </message>|
    Set objXmlHttp = CreateObject("Msxml2.XMLHTTP")
    Call objXmlHttp.Open("POST", "url", False)
    Call objXmlHttp.Send(Xml)
но POST выдает ошибку msxml3.dll: Не удается найти указанный ресурс

обращаюсь к сторонней стороне, но все что они советуют , что формат запроса должен быть json методом POST.
то есть в таком виде, как раньше было настроено, уже нет возможности использовать? возможно подскажете, что может вызывать ошибку?
к тому что сказал @oshmianski есть лотусёвый HttpRequest - со своими заморочками, но работает
 
  • Нравится
Реакции: Irina

Irina

Green Team
31.05.2019
145
2
BIT
0
спасибо, сейчас буду разбираться, просто агент был создан давно ... и никто его не трогал
 

Irina

Green Team
31.05.2019
145
2
BIT
0
к тому что сказал @oshmianski есть лотусёвый HttpRequest - со своими заморочками, но работает
лотусёвый HttpRequest -пробую , но пишет As NotesHTTPRequest - Class or type name not found

не могу найти пример для lotusscript как выполнить Post методом json, возможно кто-то может дать ссылку или какой-то пример, как пройти авторизацию
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 963
611
BIT
319
лотусёвый HttpRequest -пробую , но пишет As NotesHTTPRequest - Class or type name not found

не могу найти пример для lotusscript как выполнить Post методом json, возможно кто-то может дать ссылку или какой-то пример, как пройти авторизацию
версия домино и нотуса дб 10.0.1ФП2+
ФП лучше ставьте последний, там постоянно что-то фиксят
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 963
611
BIT
319
эх не все ) сейчас читаю источники для скачивания, просто ftp не открылись те, что вначале нашла здесь
проверил - чёт не сработало хттп
фтп по томуже адресу (сервера)
пароль/юзер как данный ресурс (имя ресурса без .net)
соединяться filezilla (в браузерах фтп не в чести уже)
 
Последнее редактирование:
  • Нравится
Реакции: Irina

Irina

Green Team
31.05.2019
145
2
BIT
0
проверил - чёт не сработало хттп
фтп по томуже адресу (сервера)
пароль/юзер как данный ресурс (имя ресурса без .net)
соединяться filezilla (в браузерах фтп не в чести уже)
спасибо за помощь, обновила и все работает теперь

Код:
    Dim ret As String
       Dim URL As String
       Dim headers As Variant
       Dim user As String
       Dim password As String
       Dim webRequest As NotesHTTPRequest
       Set webRequest = session.createhttprequest()

       user = "john@acme.com"
       password = "mypassword"
       webRequest.maxredirects= 5
       URL = "https://www.acme.com"
      
       Call webRequest.Setheaderfield("Authorization", "Basic " + EncodeBase64 (user + ":" + password))
вот не могу понять, Post нашла
Call webRequest.post(URL$, valueV) , только не пойму надо ли в post тоже добавлять (user + ":" + password)

а вот по Send не вижу информации и мне надо добавить несколько параметров при передаче, там и текст и и параметр (
<service>| & service & |</service>
<body content-type='text/plain'>| & textValue & |</body>)
 

savl

Lotus Team
28.10.2011
2 612
313
BIT
354
В заголовке надо
1618931587459.png
 

Вложения

  • 1618931571799.png
    1618931571799.png
    20 КБ · Просмотры: 141
  • NotesHTTP and NotesJSON.pdf
    3 МБ · Просмотры: 1 035
  • Нравится
Реакции: Irina

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 963
611
BIT
319
спасибо за помощь, обновила и все работает теперь

Код:
    Dim ret As String
       Dim URL As String
       Dim headers As Variant
       Dim user As String
       Dim password As String
       Dim webRequest As NotesHTTPRequest
       Set webRequest = session.createhttprequest()

       user = "john@acme.com"
       password = "mypassword"
       webRequest.maxredirects= 5
       URL = "https://www.acme.com"
     
       Call webRequest.Setheaderfield("Authorization", "Basic " + EncodeBase64 (user + ":" + password))
вот не могу понять, Post нашла
Call webRequest.post(URL$, valueV) , только не пойму надо ли в post тоже добавлять (user + ":" + password)

а вот по Send не вижу информации и мне надо добавить несколько параметров при передаче, там и текст и и параметр (
<service>| & service & |</service>
<body content-type='text/plain'>| & textValue & |</body>)
ещё крайне рекомендую формировать заголовок
Visual Basic:
        Dim ses As New NotesSession', doc As NotesDocument
        Set req=ses.CreateHTTPRequest()
        req.Preferutf8=True
        req.Preferstrings=True
        'если json
        Call req.Setheaderfield("Content-Type", "application/json; charset=UTF-8")
и делать FullTrim для результата
 

Irina

Green Team
31.05.2019
145
2
BIT
0
ещё крайне рекомендую формировать заголовок
Visual Basic:
        Dim ses As New NotesSession', doc As NotesDocument
        Set req=ses.CreateHTTPRequest()
        req.Preferutf8=True
        req.Preferstrings=True
        'если json
        Call req.Setheaderfield("Content-Type", "application/json; charset=UTF-8")
и делать FullTrim для результата
Код:
        Set req=ses.CreateHTTPRequest()
        req.Preferutf8=True
        req.Preferstrings=True
    
        URL = "http://www"
        service="sss"
        textv= "ddd"

         js = |{
        "service": service,
        "contentType": "text/plain",
        "content": textv,
        }|

        Call req.Setheaderfield("Content-Type", "application/json; charset=UTF-8")
        Call req.Setheaderfield("Authorization", "Basic " + EncodeBase64(user+ ":" + password))

        resp = req.Post(url, js)
но получаю ошибку unable to establish connection to remote server
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 963
611
BIT
319
Код:
        Set req=ses.CreateHTTPRequest()
        req.Preferutf8=True
        req.Preferstrings=True
   
        URL = "http://www"
        service="sss"
        textv= "ddd"

         js = |{
        "service": service,
        "contentType": "text/plain",
        "content": textv,
        }|

        Call req.Setheaderfield("Content-Type", "application/json; charset=UTF-8")
        Call req.Setheaderfield("Authorization", "Basic " + EncodeBase64(user+ ":" + password))

        resp = req.Post(url, js)
но получаю ошибку unable to establish connection to remote server
ну в коде выше обращение к серверу которого явно нет в жизни ;)
 

Irina

Green Team
31.05.2019
145
2
BIT
0
ну в коде выше обращение к серверу которого явно нет в жизни ;)
а вот я не пойму, если доступ с логином и паролем, то в Post как это указать
и второе , правильно ли я указала использование данных, которые получены из базы
js = |{
"user": user,
"password": password,
"service": service,
"contentType": "text/plain",
"content": textv,
}|
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 963
611
BIT
319
а вот я не пойму, если доступ с логином и паролем, то в Post как это указать
и второе , правильно ли я указала использование данных, которые получены из базы
js = |{
"user": user,
"password": password,
"service": service,
"contentType": "text/plain",
"content": textv,
}|
проверка json - установить ч-л для этого, я это делаю в идее или разных текстовых редакторах, на венде notepad++
проверка пост запроса - для ФФ есть (через curl и иже с ним) которые позволяют смотреть - ответ от сервера, установите и проверьте до написания кода
 
Последнее редактирование:
  • Нравится
Реакции: Irina

Irina

Green Team
31.05.2019
145
2
BIT
0
проверка json - установить ч-л для этого, я это делаю в идее или разных текстовых редакторах, на венде notepad++
проверка пост запроса - для ФФ есть (через curl и иже с ним) которые позволяют смотреть - ответ от сервера, установите и проверьте до написания кода
не поняла "проверка json - установить ч-л для этого, я это делаю в идее или разных текстовых редакторах, на венде notepad++" (

по проверке пост запроса:
пишу в пост url ссылку , которую мне дали +
basic auth - логин и пароль +
тип Json +
и пробую без параметров и с одним параметром
эффект одинаковый - An error occurred while fetching the resource: TypeError: NetworkError when attempting to fetch resource.
 

VladSh

начинающий
Lotus Team
11.12.2009
1 792
158
BIT
155
и второе , правильно ли я указала использование данных, которые получены из базы
js = |{
"user": user,
"password": password,
"service": service,
"contentType": "text/plain",
"content": textv,
}|
Неправильно.
Должно быть так: {"поле1": "значение1", "поле2": "значение2"}. У Вас в значениях кавычек нет. Допускаются значения без кавычек только числа и даты.
 
  • Нравится
Реакции: Irina

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 963
611
BIT
319
не поняла "проверка json - установить ч-л для этого, я это делаю в идее или разных текстовых редакторах, на венде notepad++" (
@VladSh уже ответил - json надо проверять, инструменты я назвал

1619023880251.png

ваш вариант даст ошибку
1619023936318.png

а вот если так
1619024084413.png

получим
1619024112768.png

красенькое - это ошибки ;)

идея решает это так
1619024481305.png
 
Последнее редактирование:
  • Нравится
Реакции: Irina
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!