0

私は Android プログラミングは初めてですが、PHP については十分な知識があります。

ポストリクエストを介してサーバーにデータを送信しようとしています。次のコードがあります。

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("year","1980"));
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,"UTF-8"));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
InputStream inps = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(inps));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
    sb.append(line);
}
inps.close();
result=sb.toString();
Log.v("data-received",result);

このコードは、インターネット上のさまざまな場所で見つかりました。

PHP 側では、次のように書いています。

<?php
    echo "something".$_REQUEST['year'];
?>

しかし、アプリの最後に出力として「何か」(ログ値「データ受信」) しか取得していませんか?

私は何を間違っていますか?環境変数などを設定する必要はありますか?

4

4 に答える 4

0

コードではすでにチェックが行われており、成功するとトースト メッセージとログが表示されます。使用できるphpサーバーでは、print_r($_POST);これは問題ありません。あなたが今使っているコードは何ですか?

于 2013-05-22T05:02:03.233 に答える
0

このコードの平和を使用して、日付をphpファイルに送信します。これは POST を使用しています。あなたがそれで何かできることを願っています...

URL url;
            try {
                url = new URL("url.nl/phppage.php");


              InputStream myInputStream =null;
                StringBuilder sb = new StringBuilder();
                        //adding some data to send along with the request to the server

    // Data below:  
    sb.append("email="+email.getText().toString()+"&name="+name.getText().toString()+"&message="+om.getText().toString());


                    //url = new URL(url);
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                    conn.setDoOutput(true);
                    conn.setRequestMethod("POST");
                    OutputStreamWriter wr = new OutputStreamWriter(conn
                            .getOutputStream());
                                // this is were we're adding post data to the request
                                wr.write(sb.toString());
                    wr.flush();
                    myInputStream = conn.getInputStream();
                    wr.close();
                    Context context = getApplicationContext();
                     Log.i("TAG", "Message send successful");
                CharSequence text = "Message send successful";
                int duration = Toast.LENGTH_SHORT;

                Toast toast = Toast.makeText(context, text, duration);
                toast.show(); 
                finish();
                } catch (Exception e) {
                      Context context = getApplicationContext();
                      Log.e("TAG", "Message not sended - SERVER POST ERROR");
                            CharSequence text = "Message couldn't be send.";
                            int duration = Toast.LENGTH_SHORT;

                            Toast toast = Toast.makeText(context, text, duration);
                            toast.show(); 


                }
于 2013-05-17T15:13:25.750 に答える
0

私はついにそれを働かせました。唯一の変更は最初の行にあります。

List<BasicNameValuePair> nameValuePairs = new ArrayList<BasicNameValuePairs>();

それ以外の

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

なぜそれが機能しているのか、誰にも分かりますか?

于 2013-05-22T15:45:34.233 に答える
0

$_REQUESTは常にサポートされているわけではありません。パラメータの場所によっては、$_GETまたはを使用してください。$_POST

于 2013-05-17T15:01:25.697 に答える