Http Request

Тема в разделе "Lotus - Программирование", создана пользователем valmont, 14 мар 2014.

  1. valmont

    valmont Well-Known Member

    Регистрация:
    27 дек 2004
    Сообщения:
    63
    Симпатии:
    0
    Доброго дня.
    Требуется на ls (может лучше java) отправлять данные (текст/файлы) post запросом.
    вот отрывок:
    Код (LotusScript):
        vbCrLf = Chr(13) & Chr(10)
    strBoundary = "MyUniqueGranitsa"
    strBody = "--" & strBoundary & vbCrLf
    strBody = strBody & "Content-Disposition: form-data; name=""fieldName""; filename=""file.dat""" & vbCrLf
    strBody = strBody & "Content-Type: text/plain" & vbCrLf & vbCrLf
    strBody = strBody & "данные в файле" & vbCrLf
    strBody = strBody & "--" & strBoundary & "--"

    lngLength = Len(strBody)

    strHttp = "POST /base.nsf/upload?createdocument HTTP/1.1" & vbCrLf
    strHttp = strHttp & "Host: acme.com" & vbCrLf
    strHttp = strHttp & "Content-Length: " & lngLength & vbCrLf & vbCrLf
    strHttp = strHttp & strBody


    Set xhr = CreateObject("WinHttp.WinHttpRequest.5.1")         

    xhr.Open "POST", "http://acme.com/base.nsf/upload?createdocument", False
    xhr.SetRequestHeader "Content-Type", "multipart/form-data; boundary=" & strBoundary
    xhr.Send strHttp
    после отработки Domino в консоль ругается на bad request...

    не пойму в чём проблема.
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    здесь есть многое http://www.nsftools.com/blog/blog-05-2007.htm
    рекомендую java часть (т.к. не нужно привлекать сторонние компоненты и шарить по МСтехнотам)

    Добавлено: а здесь подробный код для пост запроса, как сделать подобно примеру выше, с использованием биджа (LS2J), я описывал здесь , в вашем случае - ни строчки на java писать не придется ;)
     
  3. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    только сейчас обратил внимание..., что это за "фокус"
    - типа попытка домину заставить создать док с полями, одно из кот. включает файл ? ;)
    этот метод врядли пройдет, в таком виде
     
  4. valmont

    valmont Well-Known Member

    Регистрация:
    27 дек 2004
    Сообщения:
    63
    Симпатии:
    0
    Да, спасибо. Но с get проблем нет, также нет и с простым post (application/x-www-form-urlencoded).
    Мне нужно передать файл, с этим проблема... :(

    Добавлено:
    Сработает нормально, да, это именно "фокус" ;) и при том успешный, например прекрасно работает с ajax.
     
  5. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    теоретически, если нет upload контрола, на форме, можно попытаться запостить mime в поле типа РТ, но как это отработает домина - я не знаю
     
  7. valmont

    valmont Well-Known Member

    Регистрация:
    27 дек 2004
    Сообщения:
    63
    Симпатии:
    0
    Он не поможет, там создаётся псевдо форма с полями и делается post по этому (?createdocument) урлу. Уже сам браузер формирует заголовок и тело запроса.
    Если в заголовке
    Код (LotusScript):
    xhr.SetRequestHeader "Content-Type", "multipart/form-data; boundary=" & strBoundary
    уберу ; boundary=" & strBoundary то запрос проходит, но документ создаётся пустым.
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    эт почемуэто - очень поможет, надо запрос посмотреть в дебаге у ФФ или Хрома и создать подобный
     
  9. valmont

    valmont Well-Known Member

    Регистрация:
    27 дек 2004
    Сообщения:
    63
    Симпатии:
    0
    сам запрос смотрю через какойто httpAnalyser, по основным заголовоком всё ок, по телу запроса тоже

    Добавлено:
    да, спасибо, про эту магию вкурсе.
     
  10. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    если с аяксом все проходит - то и так должно пройти, я аякс оттрейсить предлагал
     
  11. valmont

    valmont Well-Known Member

    Регистрация:
    27 дек 2004
    Сообщения:
    63
    Симпатии:
    0
    получлиось

    Добавлено: поменял activex объект с WinHTT.WinHTTPRequest.5.1 на MSXML2.ServerXMLHTTP.4.0 ;)
     
  12. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    лучеб java, почеловечьи...
    вот всегда грю - использование МС объектов - ССЗБ
    собсно ваш пример - прямое подтверждение
     
  13. valmont

    valmont Well-Known Member

    Регистрация:
    27 дек 2004
    Сообщения:
    63
    Симпатии:
    0
    да, перепишу
     
Загрузка...

Поделиться этой страницей