2013-05-17 3 views
1

Действительно проблема с этой проблемой. Приведенный ниже код должен отправляться на значения POST (имя пользователя, пароль) на сервер, а сервер должен просто отвечать с помощью var_dump GET и POST.HTTP HTTP сообщение не отправляет сообщение valules

PHP КОД:

var_dump($_POST); 
var_dump($_GET); 

ANDROID КОД:

InputStream is = null; 

//http post 
try{ 
     HttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost(url + "?test=test"); 
     httpPost.setHeader("Content-Type", "application/json"); 
     httpPost.setHeader("Accept", "application/json"); 

     // place them in an array list 
     ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
     nameValuePairs.add(new BasicNameValuePair("username", "1123")); 
     nameValuePairs.add(new BasicNameValuePair("password", "123123")); 

     // add array list to http post 
     httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     HttpResponse response = httpClient.execute(httpPost); 
     HttpEntity entity = response.getEntity(); 
     is = entity.getContent(); 

     Log.i("Network", "POST URL: " + url); 
     Log.i("Network", "POST ARGS: " + jsonObj.toString()); 

    } catch(Exception e){ 

     Log.e("Network", "POST Error in http connection " + e.toString()); 

    } 

Но я получаю:

array(0) { 
} 
array(1) { 
    ["test"]=> string(4) "test" 
} 

Я проверил сервер с завитком: завиток пользователя -F» = test 'http://xx.xx.xx.xx/test.php И это дает мне правильное значение:

array(1) { 
    ["username"]=> string(9) "test" 
} 
array(0) { 
} 

Так что же я делаю неправильно в сообщении от android?

+0

Ваши данные, очевидно, не json. в чем смысл 'httpPost.setHeader (« Content-Type »,« application/json »);'? – njzk2

ответ

1

Вы не должны указывать заголовок Content-Type на номер application/json. Вы не можете установить заголовок Content-Type или установить его вручную на application/x-www-form-urlencoded.

+0

ах, хорошо, что сработало. в любом случае я могу подстроить ArrayList с помощью: StringEntity post_entity = new StringEntity (jsonObj.toString(), HTTP.UTF_8); httpPost.setEntity (post_entity); –

+0

, который больше не будет 'POST'' NameValuePairs'. поэтому, пожалуйста, примите его, если это правильный ответ. –

+0

Да, это был правильный ответ для NameValuePairs, просто хотел узнать, есть ли у вас решение для 'StringEntity (jsonObj.toString(), HTTP.UTF_8),' путем каких-либо изменений? –

Смежные вопросы