AndroidアプリでHTTP Webサーバーを実行する必要があります。初回起動はOKです - ブラウザを使用してそのサーバー上のページに移動するときにリクエストを受信してURI文字列を処理できます(すべてのパラメータを含む完全なURIでGETリクエストが表示されます)。しかし 、私は、サーバーへのリクエスト送信するフォームを使用している場合:HttpRequest(Android)からPOSTデータを取得する
<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フォーム自体に何かを間違ってやっている可能性が実現します。両方とも助言してください。
ありがとう、これは正しい方法です。しかし、重要な部分の1つは、明らかにHTML形式の名前フィールドの省略です。名前がそこにないときは、私はいつも体の中でヌルを受け取ります。私は、データを渡すときに、HTMLスニペット –
を変更しました。nameValuePairs.add(新しいBasicNameValuePair( "json"、jsonData.toString()));サーバー上で受け取ったとき、bodyには "jsonData.toString()"ではなく "json = jsonData.toString()"が含まれています。 –