2012-04-20 10 views
3

私はPHPスクリプトに簡単なHTTPRequestを作成したいと思いますし、機能を動作させるために最も基本的なアプリケーションを作ろうとしました。私は、私のアプリが私がそれをフィードするデータを送信していることをテストしたい、アンドロイドのアプリをサーバーに送信し、そのサーバーは、私がアプリに入れたデータを私に送信するはずです。 "postData"関数のコードはアンドロイドからサーバーにデータを送信するためのコードで、 "default.php"のコードはウェブサーバー上の受信PHPファイルで、データは自分のメールアドレス(指定されていない)に転送されます。ここではここでコードAndroid上でのHTTP POST

public void postData() { 

    // Create a new HttpClient and Post Header 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://somewhere.net/default.php"); 

    try { 
     // Add your data 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("thename", "Steve")); 
     nameValuePairs.add(new BasicNameValuePair("theage", "24")); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     //HttpResponse response = httpclient.execute(httppost); 

     // Execute HTTP Post Request 
     ResponseHandler<String> responseHandler=new BasicResponseHandler(); 
     String responseBody = httpclient.execute(httppost, responseHandler); 

    //Just display the response back 
    displayToastMessage(responseBody); 

    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
    } 
} 

だけでなく、「default.php」については

<?php 
$thename=$_GET["thename"]; 
$theage=$_GET["theage"]; 

$to = "[email protected]"; 
$subject = "Android"; 
$body = "Hi,\n\nHow are you," . $thename . "?\n\nAt " . $theage . " you are getting old."; 
if (mail($to, $subject, $body)) 
{ 
echo("<p>Message successfully sent!</p>"); 
} 
else 
{ 
echo("<p>Message delivery failed...</p>"); 
} 
?> 

はペーストビン内のコードへのリンクです: postData()default.php

私はしかし、電子メールを受け取ります"thename"と "theage"が送信されたデータは空であるように見えます。受け取った正確な電子メールは です "こんにちは、 元気? あなたは古くなっています。 これは、サーバーが名前と空を空として送信していることを示しています。あなたの誰かがこれを前に試しましたか?私は間違って何をしていますか? 私のコードを読んでタイムアウトを取ってくれてありがとう、ありがとう、私の質問に返信してくれてありがとう。

編集:私の非常にばかげた - > "GETS"は "POST"に変更する必要があります。アーカイブの目的でここに残してください:)

答えて

10

$_POSTの代わりに$_GETを使用して、投稿されたデータの値を取得しています。あなたはPOSTリクエストを送信している

<?php 
$thename=$_POST["thename"]; 
$theage=$_POST["theage"]; 
1

をしたいが、あなたのPHPスクリプトは、変数が

$thename=$_POST["thename"]; 
$theage=$_POST["theage"]; 
+0

ありがとうはちょうどそれを試してみましたが、それが動作します。できるだけ早く正しいと認めます。 – user901898

-1

方法は、AndroidとPHPべき同じ両方で使用してみてくださいGET使用して、どちらかGETまたはPOST

あなたはこれにPHPを変更するか、この場合には

- これまで

$thename = $_POST["thename"]; 
$theage = $_POST["theage"]; 

またはをチャンエーテル:アンドロイド側 -

HttpGet httppost = new HttpGet("http://somewhere.net/default.php"); 
+0

これは質問に答えようとしているようですが、答えは私には非常に不明です。あなた自身の答えを見直して編集することができますし、ビットとスタイルコードをコードとして明確にすることができます(バックティックやコードブロックを使用するか、コードを選択した状態で編集フィールドの上にあるボタンを使用します)? – Sumurai8