2012-04-20 2 views
2

첫째로, 나는 상태 코드 200을 받는다. php 스크립트에서 나는 (내가 시도하고 디버깅하는 동안) 코드 메일을 보내고있다. var_dump $ _POST 또는 $ _REQUEST를 사용하면 빈 이메일이 수신됩니다. $ _SERVER에서 foreach를 실행하면 Apache-HttpClient/UNAVAILABLE (Java 1.4) 및 CONTENT_LENGTH : 9안드로이드 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

대부분의 경우는 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

@Iam.Will 호기심에서 벗어나 모든'setHeader' 행을 주석 처리하십시오. 게시물에 대한 생성자 만 남겨두고 엔터티를 설정 한 다음 게시물을 실행하십시오. 또한 PHP 코드가 올바른지 확인하십시오. 요청을 받았지만 올바르게 전달하지 못했을 수 있습니다. –

+0

큰 차이는 없습니다. 테스트 목적을위한 내 PHP 파일에 포함되어 있습니다; '); ?> –

관련 문제