2014-01-28 2 views
0

Я пытаюсь отправить некоторые данные на свой сервер, который общедоступен в Интернете. Приложение запускается как служба после завершения загрузки (добавляется разрешение), как только приложение выходит из строя. Я сузил код вниз. Кажется, что он сбой, когда он пытается отправить данные на сервер.Сбой приложений Android при отправке данных на сервер

Ниже приведен мой код. Я очень ценю, если вы, ребята, можете мне помочь в этом.

package com.example.bootstart; 
import java.io.IOException; 
import java.io.UnsupportedEncodingException; 
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.AsyncTask; 
import android.util.Log; 

class SendData extends AsyncTask<Void, Void, Boolean> { 


    public void sendinfo(){ 
      // Creating HTTP client 
     HttpClient httpClient = new DefaultHttpClient(); 
     // Creating HTTP Post 
     HttpPost httpPost = new HttpPost(
       "http://www.mydomain.com/controller_name/funtion_name"); 

     // Building post parameters 
     // key and value pair 
     List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(4); 
     nameValuePair.add(new BasicNameValuePair("imei", "12345")); 
     nameValuePair.add(new BasicNameValuePair("welawa", "12315646545")); 
     nameValuePair.add(new BasicNameValuePair("lat", "123.25")); 
     nameValuePair.add(new BasicNameValuePair("long", "52.22323")); 

     // Url Encoding the POST parameters 
     try { 
      httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair)); 
     } catch (UnsupportedEncodingException e) { 
      // writing error to Log 
      e.printStackTrace(); 
     } 

     // Making HTTP Request 
     try { 
      HttpResponse response = httpClient.execute(httpPost); 

      // writing response to log 
      Log.d("Http Response:", response.toString()); 
     } catch (ClientProtocolException e) { 
      // writing exception to log 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // writing exception to log 
      e.printStackTrace(); 

     } 
    } 

    @Override 
    protected Boolean doInBackground(Void... params) { 
     // TODO Auto-generated method stub 
     return null; 
    } 




} 

Я разработчик php, пытаясь написать простое приложение, которое регистрирует GPS-сердечники.

Я не могу проверить консоль, потому что какая-то вещь заставила работать эмулятор. Я всегда получаю эмулятор-arm.exe, который перестает работать bla bla bla. Поэтому я использую свой телефон и перезапускаю его каждый раз, когда я тестирую. К сожалению, у меня нет доступа к журналу.

Любая помощь очень ценится.

+0

Где 'sendinfo() 'вызван? – Apoorv

+0

, где вы проверяете подключение к Интернету, прежде чем вызывать метод' sendinfo() ' –

+0

Если у вас нет g затем генерирует сообщение «Toast» с сообщением об исключении. – Krrishnaaaa

ответ

3

Я не знаю, где sendinfo() называется? Но я думаю, что в вашей основной деятельности вы звоните, что:

new SendData().sendInfo(); :(

Пожалуйста, поставьте sendInfo в doInBackground

И в вашей деятельности: new SendData().execute();

+0

Привет, Джек, спасибо, я не получил ошибку сейчас. Тем не менее, журнал говорит «Сеть» под тегом в консоли. Я не получаю никаких данных на моем сервере. Я довольно уверен в кодировании сервера. Я сделал это, чтобы посылать мне по электронной почте каждый раз, когда страница запрашивается (просто чтобы я знал, что она вызывается), но она не вызвана. Вы видите, что что-то не так? Я использую новый SendData(). Execute(); для вызова класса из другой службы. Кодирование не изменилось выше. Любая помощь? –

+0

Итак, я думаю, нам нужно больше времени, чтобы поговорить об этом, пожалуйста, переместите этот комментарий в чате. Я думаю, я могу помочь вам решить эту проблему. – Luc

+0

С другой стороны, на телефоне обычно отображаются значки 3g, зеленые и оранжевые. Но, похоже, это не происходит, хотя в журнале говорится «Сеть». –

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