2

私のAndroidアプリでは、HTTPWebサーバーを実行する必要があります。最初の起動は問題ないようです-ブラウザを使用してそのサーバー上のページに移動しているときに、リクエストを受信して​​URI文字列を処理できます(すべてのパラメータを含む完全なURIのGETリクエストが表示されます)。ただし、サーバーにリクエストを送信するフォームを使用している場合は、次のようになります。

<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フォーム自体で何か間違ったことをしている可能性があることに気づきました。両方についてアドバイスしてください。

4

2 に答える 2

4

POST本文を取得するには、次のようにします。

if (request instanceof HttpEntityEnclosingRequest) { //test if request is a POST
    HttpEntity entity = ((HttpEntityEnclosingRequest) request).getEntity();
    String body = EntityUtils.toString(entity); //here you have the POST body
}
于 2012-04-29T10:07:18.087 に答える
0

androidでPOSTリクエストを実装するには、こちらを参照してください。

ブラウザでクロスチェックするには、Firebugの(Firefoxで、他の人と同様の)コンソールでajax投稿リクエストを確認することをお勧めします。またはhttp://web-sniffer.net/http://hurl.itなどのオンラインツール

于 2012-04-28T17:54:19.853 に答える