2012-04-20 66 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); 

我的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

最有可能有事情做與你

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

application/json是不正常的內容類型HTTP POST表單提交。考慮到你沒有真正發送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

我已經評論過該行。我加了你說的話,但這沒什麼區別。 – 2012-04-20 15:01:19

+0

@ I.am.Will出於好奇,嘗試註釋掉所有'setHeader'行。只留下帖子的構造函數並設置實體 - 然後執行帖子。還要確保你的PHP代碼是正確的 - 也許它確實收到請求,但你沒有正確地轉發它。 – 2012-04-20 15:05:59

+0

恐怕沒有區別。我的php文件用於測試目的包含; <?php $ string = var_dump($ _ REQUEST); 郵件(郵件地址爲:[email protected]),郵件地址爲:「郵件地址」,郵件地址爲「droid登錄」,$ string,'From:My <[email protected]>'; ?> – 2012-04-20 15:12:04