0

次の PHP コードに対して Http リクエストを実行しようとしています。

<?php

var_dump($_POST);

?>

リクエストを送信するための Android Java コードは次のとおりです。

        String stringURL = "http://*I EDITED OUT MY IP*/mediatheque_api";

        List<NameValuePair> postVars = new ArrayList<NameValuePair>(2);

        postVars.add(new BasicNameValuePair("req","listemedias"));
        postVars.add(new BasicNameValuePair("no","12345"));

        // Making HTTP request
        try {
            // defaultHttpClient
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(stringURL);
            httpPost.setEntity(new UrlEncodedFormEntity(postVars));

            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();

            if (httpEntity != null){
                System.out.println("Not Empty");
                String responseBody = EntityUtils.toString(httpEntity);
                System.out.println(responseBody);
            } else {
                System.out.println("Empty");
            }

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

LogCat に出力される内容は次のとおりです。

07-04 17:13:15.274: I/System.out(20547): Not Empty
07-04 17:13:15.274: I/System.out(20547): array(0) {
07-04 17:13:15.274: I/System.out(20547): }

コメントで示唆されているように、$_SERVER['REQUEST_METHOD'] の値をエコーし​​ました。POST ではなく GET を要求していると表示されます。問題は、Apache サーバーの構成が変更されておらず、明らかに POST 要求を行っていることです。

URLを介してエンコードしていると思われますが、HttpPostはPOST変数を送信していないようです。単純にブラウザーでページに移動すると、リクエストに POST 変数がないため、array(0) {} も取得されます。昨日からいじってみましたが、何が間違っているのかわかりません。どうした?

4

1 に答える 1