2013-04-29 3 views
2

Я разработал приложение для отправки данных на сервер, но при попытке запустить его, я получаю сообщение об ошибке при выполнении запроса HTTP ....Ошибка в httpclient.execute (httppost);

Вот код ...

public void send() 
    { 
     // get the message from the message text box 
     String msg = msgTextField.getText().toString(); 
     System.out.println("I am here!!!"); 
     // make sure the fields are not empty 
     if (msg.length()>0) 
     { 

      Toast.makeText(this, "started", Toast.LENGTH_LONG).show(); 
      DefaultHttpClient httpclient=new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost("http://www.fblocation.asia/update/index.php"); 
      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
      nameValuePairs.add(new BasicNameValuePair("lat", Double.toString(clat))); 
      nameValuePairs.add(new BasicNameValuePair("long", Double.toString(clong))); 
      nameValuePairs.add(new BasicNameValuePair("username", msg)); 
     try { 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      httpclient.execute(httppost); 
      Toast.makeText(this, "sent", Toast.LENGTH_LONG).show(); 
     } catch (Exception e) { 
      Toast t=Toast.makeText(getApplicationContext(),e.getMessage(), Toast.LENGTH_LONG); 
      t.show(); 
     } 

     } 
     else 
     { 
      // display message if text fields are empty 
      Toast.makeText(getBaseContext(),"All field are required",Toast.LENGTH_SHORT).show(); 
     } 

    } 

Пожалуйста, дайте мне несколько предложений.

Спасибо!

+2

вы gettint NetworkOnMainThreadException? Если вы получаете это исключение, вы должны прочитать это руководство http://android-developers.blogspot.it/2009/05/painless-threading.html – Blackbelt

+1

LogCat-output (необязательно журнал из webservice) – bofredo

+1

вставьте свой logcat – SKK

ответ

3

Пожалуйста, попробуйте этот код

HttpClient httpclient = new DefaultHttpClient(); 
     String responseStr=""; 
     String URL=Constants.API_URL+"details/"; 
     HttpPost httppost = new HttpPost(URL); 

     try { 
      // Add your data 
      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
      nameValuePairs.add(new BasicNameValuePair("id", pick_up_id)); 
      nameValuePairs.add(new BasicNameValuePair("username", username)); 
      nameValuePairs.add(new BasicNameValuePair("password", password)); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

      // Execute HTTP Post Request 
      HttpResponse response = httpclient.execute(httppost); 

      int responseCode = response.getStatusLine().getStatusCode(); 
      switch(responseCode) { 
      case 200: 
       HttpEntity entity = response.getEntity(); 
       if(entity != null) { 
        String responseBody = EntityUtils.toString(entity); 
        responseStr=responseBody; 
       } 
       break; 
      } 
     } catch (ClientProtocolException e) { 
      // TODO Auto-generated catch block 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
     } 
     System.out.println("this is response "+responseStr); 
0

вам необходимо выполнить асинхронные http-вызовы. это означает некоторые важные изменения для вашего кода и некоторые дни практики. следуйте ссылкам из комментариев, чтобы получить первое впечатление от AsyncTask.

также this guide - довольно цельный тоже !!

+0

Не могли бы вы рассказать мне простой способ обновить информацию на сервере. –

+0

здесь нет простого способа. – bofredo

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