Сообщений: 1,240
Тем: 29
Зарегистрирован: May 2013
Репутация:
2,505
Ну я об этом и говорю. JSON достаточно удобное решение. На гуглокоде есть либа под Java и примеры её использования. Что вам мешает использовать её и для HTTP запросов и для внутреннего протокола между 2-мя серверами? базово это стринг строка, шифруйте её и всё. Зато парс данных простейший.
Родился, живу и когда-нибудь умру.
Сообщений: 509
Тем: 7
Зарегистрирован: Apr 2008
Репутация:
1,660
Virt Написал:Увы java знаю на уровне junior, балуюсь для своего личного саморазвития. А так есть задача - нам передают GET запрос по HTTP мы принимаем, анализируем, кодируем данные и отправляем на другой сервер, другой протокол пакет. Как-то php для нашей задачи не подходит, т.к. есть свои нюансы в поточности асинхронного выполнения.
А почему именно HTTP, то это уже вопрос не ко мне=)
Это пол беды - мне тут недавно пришлось с русским xml с весом одной вложенности дерева в почти 1 мб. (xml был выгружен из 1C) - вот это было страшно смотреть и глаза содрогались:
PHP код:
<?php
<пользователь паспорт="" серия="" номер="">
<имущество аттр1="" аттр2="" аттр2="" />
// и т.д. большество параметров и вложенности
</пользователь>
Увы вот это реальная глупость...
Както-так (спойлер). Не стоит городить костыли для работы с HTTP и сокетами когда все уже есть.
P.S. Для работы с XML если структура не меняется просто сделать JAXB модель. 1Мб это не так уж и много - можно весь DOM грузить. Помню была таска обрабатывать XMLину весом в 2.4 гига с лимитом памяти - пришлось попотеть.
code
Код:
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
import org.eclipse.jetty.server.*;
import org.eclipse.jetty.server.handler.*;
public class SampleServer
{
public static void main(String[] args) throws Exception
{
Server server = new Server(80);
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { new RequestHandler(), new DefaultHandler() });
server.setHandler(handlers);
server.start();
server.dumpStdErr();
server.join();
}
static class RequestHandler extends AbstractHandler
{
@Override
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html; charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
// process request here
baseRequest.setHandled(true);
}
}
}
Сообщений: 57
Тем: 12
Зарегистрирован: Mar 2012
Репутация:
6
[quote=Aquanox]P.S. Для работы с XML если структура не меняется просто сделать JAXB модель. 1Мб это не так уж и много - можно весь DOM грузить.
[QUOTE]
То было на php=))) P.S. по этому направлению специализируюсь.