2014-02-05 2 views
0

Мой проект содержит вызов Network.SendLocation(); и следующий класс:Данные не получены по запросу после

package com.example.getcurrentlocation; 

import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 

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 android.os.Build; 
import android.os.StrictMode; 
import android.os.StrictMode.ThreadPolicy; 
import android.util.Log; 

public class Networking{ 

    public void SendLocation(){ 
     if (Build.VERSION.SDK_INT>= 10) { 
      ThreadPolicy tp = ThreadPolicy.LAX; 
      StrictMode.setThreadPolicy(tp); 
      } 
     //Create a new HttpClient and Post Header 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost("http://localhost:8080/BW/Test.php"); 

      try { 
       // Add your data 
       List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
       nameValuePairs.add(new BasicNameValuePair("id", "12345")); 
       nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!")); 
       httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

       // Execute HTTP Post Request 
       HttpResponse response = httpclient.execute(httppost); 
       // writing response to log 
       Log.d("Http Response:", response.toString()); 
      } catch (ClientProtocolException e) { 
       // TODO Auto-generated catch block 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
      } 
    } 
} 

По какой-то причине, я не могу получить какие-либо данные от вызова (то же самое для вызова «http://www.google.com»). Кроме того, php никогда ничего не выполняет, поэтому просто не ударяет. Я не могу понять, почему это не сработает. Я тестировал с тостами до и после этого всего звонка.

+0

Что делает этот журнал' Log.d («Http Response:», response.toString()); ' – Raghunandan

+0

Он не нужен, но он отдает ответ от сервера. – Pachonk

+0

Я вижу ничего плохого, просто попробуйте 'String res = EntityUtils.toString (response.getEntity());' – Raghunandan

ответ

1

В Android Вам необходимо подключить локальный сервер означает, что вы должны использовать «http://10.0.2.2» или «http://YOUR SERVER IP» вместо "http://localhost:8080 "

+0

Спасибо, исправлены все мои проблемы отлично! – Pachonk

0

Ваш код выглядит правильно, это мой код для работы.

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,HTTP.UTF_8)); 

HttpResponse response = client.execute(httppost); 
HttpEntity httpEntity = response.getEntity(); 
String state = EntityUtils.toString(httpEntity); 
Log.i("henry", "state = "+state); 

и убедитесь, что ваш PHP должен повторить что-то

<?PHP 
    echo $_POST['id']; 
?> 
Смежные вопросы