2012-04-20 19 views
2

まず、ステータスコード200を受け取っています。PHPスクリプトでは、コードをメールしています(私が試してデバッグしている間に)。 var_dump $ _POSTまたは$ _REQUESTを使用すると空白のメールが届きます。 $ _SERVERでforeachを実行すると、HTTP_USER_AGENTのようなデータが返されます。Apache-HttpClient/UNAVAILABLE(java 1.4)とCONTENT_LENGTH:9Androidのhttp投稿がデータを送信していない

なぜ投稿データがないのですか?私はアンドロイドには新しく、文字通り私が行くように学んでいます。

HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost(dest_url); 
    //httppost.setHeader("Accept", "application/json"); 
    //httppost.setHeader("Content-type", "application/json"); 

//JSONObject json = new JSONObject(); 

     // Add your data 
     //json.put("action", "login"); 
     //json.put("username", "kermit"); 
     //json.put("password", "123456"); 

    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
    //nameValuePairs.add(new BasicNameValuePair("myjson", json.toString())); 
    nameValuePairs.add(new BasicNameValuePair("plswork", "hi")); 
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8)); 

    //StringEntity str_json = new StringEntity(json.toString()); 

    //httppost.setEntity(str_json); 
    HttpResponse response; 

    response = httpclient.execute(httppost); 

My manifestxmlには次の行があります。

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 

これは私の輸入品です。

import java.io.IOException; 
import java.util.ArrayList; 
import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.message.BasicNameValuePair; 
import org.apache.http.protocol.HTTP; 
import org.json.JSONObject; 

import android.app.Activity; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

答えて

3

ほとんどの場合、それは、HTTP POSTフォーム送信のための通常のコンテンツタイプではありません、あなたの

httppost.setHeader("Content-type", "application/json"); 

application/jsonとは何かを持っています。あなたが本当にJSONを送信するのではなく、標準POSTのエンティティ(nameString =で、valueString)、

httppost.setHeader("Content-Type", "application/x-www-form-urlencoded") 

にこれを変更しようとすると、これはあなたの問題を並べ替えるかどうかを見ていないことを考えます。それとももっと良いことに、それをすべて取り除いてください。

私は私のアプリでこのコードを使用する - そしてそれは完全に正常に動作します:

HttpPost httppost = new HttpPost(SERVER_URL); 
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); 
nameValuePairs.add(new BasicNameValuePair("REQUEST", req)); 
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8")); 
HttpResponse response = httpclient.execute(httppost); 

この場合の応答がtext/xmlである - しかし、これは問題ではないはず。

+1

私はすでにその行をコメントアウトしています。あなたが言いたいことを付け加えましたが、違いはありません。 –

+0

@ I.am.Will好奇心のために、すべての 'setHeader'行をコメントアウトしてみてください。投稿のコンストラクタだけを残してエンティティを設定してから、投稿を実行します。また、あなたのPHPコードが正しいことを確認してください。おそらく要求を受け取りますが、正しく転送していないかもしれません。 –

+0

何の違いもありません私は恐れています。テスト目的のための私のPHPファイルが含まれています。 <?php $ string = var_dump($ _ REQUEST); mail([email protected] '、'ドロイドログイン '、$文字列、' From:My <[email protected]> '); ?> –

関連する問題