1

Androidコードからphpファイルにデータを送信しようとしています。

PHPからそれを取得して、エミュレーターに表示しようとしています私のJavaコード

`

       try{

      URL url = null;
      String s="http://10.0.2.2/welcome.php";
     url = new URL(s);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new   HttpPost(s);    
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                                                                                           HttpResponse response = httpclient.execute(httppost);

        Log.i("postData", response.getStatusLine().toString());
            reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
              stringBuilder = new StringBuilder();

              String line = null;
              while ((line = reader.readLine()) != null)
              {
                stringBuilder.append(line + "\n");
              }
        }

        catch(Exception e)
        {
            Log.e("log_tag", "Error in http connection "+e.toString());
        }  


        finally
        {
             tx.setText(stringBuilder.toString());
          // close the reader; this can throw an exception too, so
          // wrap it in another try/catch block.
          if (reader != null)
          {
            try
            {
              reader.close(); 
            }
            catch (IOException ioe)
            {  tx.setText((CharSequence) ioe);
              ioe.printStackTrace();
            }
          }
        }``

post 用と get 用の 2 つの異なる接続を開くことで愚かなことをしていますが、問題はありません。それは私の http-post.execute メソッドです。

私のphpコードは <?php $pLat = $_POST['pLat']; $pLng = $_POST['pLng']; print_r("$_POST['pLat']"); print_r("$_POST['pLng']"); ?>

データの送信に問題があると思います.phpで合計をエコーすると、エミュレーターに表示されます。

助けてください

4

1 に答える 1

1

ライブラリを使用して HTTP リクエストを実行することを強くお勧めします。物事はずっと簡単になります。たとえば、 Android Asynchronous Http Clientを見てください。データの POST と応答の処理の例:

AsyncHttpClient client = new AsyncHttpClient();
RequestParams rp = new RequestParams();
rp.put("pLat", "some value");
rp.put("pLong", "some other value");
client.post("http://10.0.2.2/welcome.php", rp, new AsyncHttpResponseHandler() {
    @Override
    public final void onSuccess(String response) {
        // handle your response here
    }

    @Override
    public void onFailure(Throwable e, String response) {
        // something went wrong
    }               
});
于 2013-04-26T08:08:04.030 に答える