powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Как получить содержимое POST запроса "application/xml" сервлет jetty
13 сообщений из 13, страница 1 из 1
Как получить содержимое POST запроса "application/xml" сервлет jetty
    #39941012
ToTAmon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь осуществить POST запрос к серверу jetty. Сервлет отрабатывает, ловлю request. Но никак не могу понять как из него получить отправленные данные.
Подскажите куда копать, пожалуйста!

Из отладчика:
авторrequest = {Request@1883} "Request(POST //med-fr:8180/FR)@1972b201"
_channel = {HttpChannelOverHttp@1894} "HttpChannelOverHttp@64ee8b0{r=1,c=false,a=DISPATCHED,uri=//med-fr:8180/FR,age=8027}"
_requestAttributeListeners = {ArrayList@1895} size = 0
_input = {HttpInputOverHTTP@1896} "HttpInputOverHTTP@1b6d5d8f[c=0,q=0,[0]=null,s=STREAM]"
_metaData = {MetaData$Request@1897} "POST{u=//med-fr:8180/FR,HTTP/1.1,h=5,cl=110}"
_method = "POST"
_uri = {HttpURI@1922} "//med-fr:8180/FR"
_httpVersion = {HttpVersion@1923} "HTTP/1.1"
_fields = {HttpFields@1924} "Host: med-fr:8180\r\nUser-Agent: 1C+Enterprise/8.3\r\nAccept: */*\r\nContent-Type: application/xml\r\nContent-Length: 110\r\n\r\n"
_contentLength = 110
_trailers = {HttpChannel$lambda@1925}
_originalURI = "/FR"
_contextPath = ""
_servletPath = "/FR"
_pathInfo = null
_secure = false
_asyncNotSupportedSource = null
_newContext = false
_cookiesExtracted = true
_handled = false
_contentParamsExtracted = false
_requestedSessionIdFromCookie = false
_attributes = {AttributesMap@1900} "{org.eclipse.jetty.multipartConfig=javax.servlet.MultipartConfigElement@21b60fb2}"
_authentication = null
_characterEncoding = "UTF-8"
_context = {ServletContextHandler$Context@1902} "ServletContext@o.e.j.s.ServletContextHandler@16ec5519{/,null,AVAILABLE}"
_cookies = null
_dispatcherType = {DispatcherType@1903} "REQUEST"
_inputState = 0
_queryParameters = null
_contentParameters = null
_parameters = null
_queryEncoding = null
_reader = null
_readerEncoding = null
_remote = null
_requestedSessionId = null
_scope = {ServletHolder@1904} "Model.ServletFineReader-517cd4b@271adc1a==Model.ServletFineReader,jsp=null,order=-1,inst=true,async=true"
_session = null
_sessionHandler = {SessionHandler@1905} "org.eclipse.jetty.server.session.SessionHandler769151807==dftMaxIdleSec=-1"
_timeStamp = 1585135963159
_multiParts = null
_async = null
...
Рейтинг: 0 / 0
Как получить содержимое POST запроса "application/xml" сервлет jetty
    #39941013
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Commons FileUpload ?
Content-Type: application/пофигу-что возвращает поток байт, который читается вполне обычным образом.
...
Рейтинг: 0 / 0
Как получить содержимое POST запроса "application/xml" сервлет jetty
    #39941016
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Commons FileUpload ?
Content-Type: application/пофигу-что возвращает поток байт, который читается вполне обычным образом.
код отправки нужен
...
Рейтинг: 0 / 0
Как получить содержимое POST запроса "application/xml" сервлет jetty
    #39941017
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Basil A. Sidorov
Commons FileUpload ?
Content-Type: application/пофигу-что возвращает поток байт, который читается вполне обычным образом.
код отправки нужен
это ТС у пост
...
Рейтинг: 0 / 0
Как получить содержимое POST запроса "application/xml" сервлет jetty
    #39941021
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
PetroNotC Sharp
код отправки нужен
это ТС у пост
И?
Commons FileUpload не подходит в принципе, POST не позволяет получить ServletInput/OutputStream или что?
...
Рейтинг: 0 / 0
Как получить содержимое POST запроса "application/xml" сервлет jetty
    #39941025
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
Для ответа на вопрос нужен код а не логи.
Я их даже не читал.
...
Рейтинг: 0 / 0
Как получить содержимое POST запроса "application/xml" сервлет jetty
    #39941032
ToTAmon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,
Мне код отправки не жалко просто он на 1С lang.


1С lang HTTP = Новый HTTPСоединение(Сервер,Порт,,,,,Неопределено);

СтрокаЗапроса = Новый ЗаписьXML;
СтрокаЗапроса.УстановитьСтроку("UTF-8");

СтрокаЗапроса.ЗаписатьБезОбработки("<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>
|");

СтрокаЗапроса.ЗаписатьНачалоЭлемента("NameFileIn");
СтрокаЗапроса.ЗаписатьТекст(XMLСтрока(Документ.ИмяФайла));
СтрокаЗапроса.ЗаписатьКонецЭлемента();


ПараметрыЗапроса = СтрокаЗапроса.Закрыть();
Сообщить(""+ПараметрыЗапроса);
// Отсылаем POST запрос на обработку.
// СсылкаНаРесурс — ссылка на веб-сервер (страницу), к которой посылается POST запрос
HTTPЗапрос = Новый HTTPЗапрос("FR");
HTTPЗапрос.Заголовки.Вставить("Content-type", "application/xml");
HTTPЗапрос.УстановитьТелоИзСтроки(ПараметрыЗапроса, КодировкаТекста.UTF8);

Ответ = HTTP.ОтправитьДляОбработки(HTTPЗапрос);


XML содержит
XML <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<NameFileIn>valid-analyt-procedure.pdf</NameFileIn>
...
Рейтинг: 0 / 0
Как получить содержимое POST запроса "application/xml" сервлет jetty
    #39941034
ToTAmon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov
Commons FileUpload ?
Content-Type: application/пофигу-что возвращает поток байт, который читается вполне обычным образом.


:( Ткните пожалуйста, если не трудно, примером. Я наверняка туплю, но реально уже третий день вожусь безрезультатно.
...
Рейтинг: 0 / 0
Как получить содержимое POST запроса "application/xml" сервлет jetty
    #39941037
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ToTAmon,
Круто. А причем java?
Тогда так:
- сделай запрос в js, IE, утилите к эксплореру и приходи в топик
- перехвати запрос сниффером.
...
Рейтинг: 0 / 0
Как получить содержимое POST запроса "application/xml" сервлет jetty
    #39941040
ToTAmon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,
На Java сервер написан. :) К которому обращение.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
    
public void doPost(HttpServletRequest request,
                       HttpServletResponse response) throws ServletException, IOException {

        System.out.println("POST1");
        response.setContentType("text/html;charset=UTF-8");
        request.setCharacterEncoding("UTF-8");

        String file = request.getParameter("file");
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);

        if (isMultipart) {
            FileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);

            try {
                List items = upload.parseRequest(request);
                Iterator iterator = items.iterator();
                while (iterator.hasNext()) {
                    FileItem item = (FileItem) iterator.next();

                    if (!item.isFormField()) {
                        String fileName = item.getName();

                        String root = getServletContext().getRealPath("/");
                        File path = new File(root + "/uploads");
                        if (!path.exists()) {
                            boolean status = path.mkdirs();
                        }

                        File uploadedFile = new File(path + "/" + fileName);
                        System.out.println(uploadedFile.getAbsolutePath());
                        item.write(uploadedFile);
                    }
                }
            } catch (FileUploadException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }        //request.
    }
...
Рейтинг: 0 / 0
Как получить содержимое POST запроса "application/xml" сервлет jetty
    #39941048
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ToTAmon,
Ответ тот же.
Снаружи проверка будет правильнее и точнее.
...
Рейтинг: 0 / 0
Как получить содержимое POST запроса "application/xml" сервлет jetty
    #39941049
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не понял, что общего между application/xml и ServletFileUpload.

https://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getInputStream()
...
Рейтинг: 0 / 0
Как получить содержимое POST запроса "application/xml" сервлет jetty
    #39941109
ToTAmon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev
Я не понял, что общего между application/xml и ServletFileUpload.

https://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getInputStream()


Огромное спасибо! Проблема решена благодаря вашему совету.

Нужный код
Код: java
1.
2.
        Scanner s = new Scanner(request.getInputStream(), "UTF-8").useDelimiter("\\A");
        String xmlF = s.hasNext() ? s.next() : "";
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как получить содержимое POST запроса "application/xml" сервлет jetty
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]