Параметры разбора HTTP Get Request

Немного предыстории, я создаю SMS-шлюз, чтобы телефон Android работал как мини-веб-сервер / SMS-шлюз. При получении SMS-сообщения оно отправляет сообщение в веб-службу (внешнюю). Веб-служба (внешняя) отвечает на IP-адрес Android в виде запроса GET с параметрами.

Я пытаюсь получить параметры запроса к моему веб-сервису приложения для Android. Предмет request Кажется, работает нормально, но у меня проблемы с анализом параметров.

Выход из

Log.i("WEB_REQUEST", request.getRequestLine().toString());

является

GET /send.html?smsto=testtes&smsbody=testers HTTP/1.1

Однако всякий раз, когда я пытаюсь вернуть определенный параметр, он возвращает только ноль.

        HttpParams params = request.getParams();
        Log.i("WEB_REQUEST", params.getParameter("smsto").toString());
        Log.i("WEB_REQUEST", params.getParameter("smsbody").toString());

Как я могу сделать что-то вроде String smsto = params.getParameter("smsto").toString(); вернуть значение параметра в GET запрос?

1 ответ

Решение

Я закончил тем, что делал это. Кажется странным, что getParameter не работает Я использую точно такую ​​же переменную в этом решении, но сохраняю параметры в списке. Я надеялся, что не придется использовать цикл, хотя это должно оказать минимальное влияние. Похоже, не так ловко.

List<NameValuePair> parameters = URLEncodedUtils.parse(new URI(request.getRequestLine().getUri()), HTTP.UTF_8);
for (NameValuePair nameValuePair : parameters) {
  Log.i("WEB_REQUEST", nameValuePair.getName() + ": "+ nameValuePair.getValue());
}
Другие вопросы по тегам