質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.95%

AndroidからPOST送信した文字をphpで表示するにはどうすればいいでしょうか

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,821
退会済みユーザー

退会済みユーザー

前提・実現したいこと

AndroidからPOST送信した文字をphpで受信して、受け取った文字を表示させたいです。

該当のソースコード

Android Studio

public class MainActivity extends Activity implements View.OnClickListener{


    private Button btn = null;
    private TextView tv = null;
    //ログ出力時のタグ名
    private static final String TAG_LOG = "Log";
    //Volleyでリクエスト時に設定するタグ名。キャンセル時に利用する。
    private static final Object TAG_REQUEST_QUEUE = new Object();
    //リクエスト先
    private static final String REQUEST_URL_RESEPONSE_STRING = "http://***/android_post_test.php";
    //RequestQueueのインスタンス用
    private RequestQueue mRequestQueue;
    //private Object mode;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn = (Button)findViewById(R.id.btn1);
        tv = (TextView)findViewById(R.id.tv1);

        btn.setOnClickListener(this);

        //RequestQueueのインスタンス用を取得
        mRequestQueue = Volley.newRequestQueue(getApplicationContext());

    }
    @Override
    public void onClick(View v) {
        // ボタン押下時
        if( v == btn )
        {
            requestStringPost();
        }
    }

    /*
     * onCreateの後に呼び出される。
     */
    /*@Override
    public void onStart(){
        super.onStart();
        //HTTPリクエストを行う
        //requestString();
        //
        requestStringPost(99);
    }*/

    /*
     * アプリが見えなくなったときに呼び出される。
     * (他のアプリを立ち上げたりした時など)
     */
    @Override
    public void onStop(){
        super.onStop();
        mRequestQueue.cancelAll(TAG_REQUEST_QUEUE);
    }
    /*
     *
     */

    /*
     * POST送信用
     */
    private void requestStringPost(){

        //リクエスト&レスポンス情報の設定
        //StringRequestの場合
        StringRequest request = new StringRequest(
                //送信方法 GET/POST
                Request.Method.POST,
                //送信先
                REQUEST_URL_RESEPONSE_STRING,
                //レスポンス成功時のリスナー
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        tv.setText( response );

                        //レスポンス受け取り時の処理
                        if (response == null){
                            //空の場合
                            return;
                        }
                        //
                        Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show();
                    }
                },
                //レスポンス失敗時のリスナー
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                        //エラー時の処理
                        Toast.makeText(getApplicationContext(), "onErrorResponse", Toast.LENGTH_LONG).show();

                    }
                }
        ){
            protected Map<String, String> getParams() throws AuthFailureError {
                //POSTで送信したい値を設定する
                Map obj = new HashMap();
                obj.put("post_1", "ユーザID");
                obj.put("post_2", "ユーザid");
                return obj;
            }
        };

        //タグを設定する
        request.setTag(TAG_REQUEST_QUEUE);

        //リクエスト&レスポンス情報の設定を追加
        mRequestQueue.add(request);

        //リクエスト開始
        mRequestQueue.start();
    }


}

PHP側

<?php
header("Content-Type: text/html; charset=UTF-8");
  echo "レスポンスのテスト。\npost_1 = " 
    . $_POST["post_1"] 
    . "\npost_2 = " 
    . $_POST["post_2"]
  ;
?>

補足情報(言語/FW/ツール等のバージョンなど)

Java/php/Android Studio2.1/Mac/XPERIA

コメント

現在JAVA、PHPを勉強中でまだまだ理解できていない事が多くあると思いますが、どうぞよろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • Mr_Roboto

    2016/07/27 00:35

    こんばんは、現状、何が問題なのか質問に書いたほうが良い回答が得られると思いますよ ^^ エラーが出るとかそういうことですね。

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2016/07/27 00:48

    ご指摘ありがとうございます。
    質問文を修正いたしました。
    現状では、エラーは特に出ていませんのでおそらく正しくPOST送信ができていない状態だと思います。

    キャンセル

回答 1

checkベストアンサー

0

勘違いしていたら申し訳ないのですが、何をPOSTしているコードでしょうか?
getParams()は呼ばれていないようですし、受信側では受け取りようがないのでは?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/27 17:17

    回答ありがとうございます。
    文字をPOST(ここでは、ユーザID、ユーザid)しようとしています。
    getParams()が呼び出して受信側が受け取れるようにするには、どのような事をすれば良いでしょうか。

    キャンセル

  • 2016/07/28 16:44

    "Android POST"等のキーワードで検索するといろいろ方法が見つかると思います。HttpURLConnectionを使う方法やHttpClinetを使う方法など、いろいろありますのでここからは頑張って調べてみてください。

    キャンセル

  • 2016/07/29 10:47

    ありがとうございます。
    HttpURLConnectionを使う方法やHttpClinetを使う方法について探してみます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.95%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る