в моем приложении для Android Мне нужно запустить HTTP-сервер. Первоначальный вывод выглядит нормально - я могу получать запросы и обрабатывать строку URI, когда я использую браузер для перехода на страницу на этом сервере (я вижу запрос GET с полным URI со всеми параметрами). Однако, если я использую форму, которая отправляет запрос на сервер:Получение POST-данных из HttpRequest (Android)
<FORM action="http://192.168.1.107:8080/testaction" method="post">
<INPUT type="text" name="textfield" /><BR>
<INPUT type="submit" value="Send"/>
</FORM>
я получаю только действие в URI (например, «/ testaction»). Я не могу понять, как получить фактические данные запроса POST.
Вот та часть, которая обрабатывает запрос в Java-коде:
public class HomePageHandler implements HttpRequestHandler {
...
@Override
public void handle(HttpRequest request, HttpResponse response, HttpContext httpContext) throws HttpException, IOException {
String uriString = request.getRequestLine().getUri();
Uri uri = Uri.parse(uriString);
...
}
Я понимаю, что можно было бы сделать что-то неправильно в Java и/или сам HTML-форме. Просьба сообщить обоим.
Спасибо, это правильный способ сделать это. Однако одной важной частью, по-видимому, было отсутствие поля имени в форме HTML. Когда имени нет, я постоянно получаю нуль в теле. Я изменил HTML-фрагмент –
, когда я передаю данные как, nameValuePairs.add (новый BasicNameValuePair («json», jsonData.toString())); и когда я получаю его на сервере, в теле содержится «json = jsonData.toString()» вместо «jsonData.toString()». –