2013-07-14 6 views
1

Извините, я новичок в мире java и android. Я хотел бы понять, почему он всегда отвечает на ошибку. Спасибо!Ошибка HTTP HTTP GET

try { 
      HttpClient client = new DefaultHttpClient(); 
      String getURL = "http://www.google.com"; 
      HttpGet get = new HttpGet(getURL); 
      HttpResponse responseGet = client.execute(get); 
      HttpEntity resEntityGet = responseGet.getEntity(); 
      if (resEntityGet != null) { 
      Toast.makeText(getApplicationContext(), "ok", Toast.LENGTH_LONG).show(); 
      } 
    } catch (Exception e) { 
     //e.printStackTrace(); 
     Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_LONG).show(); 
    } 

Импорт

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.DefaultHttpClient; 

да и я поступил в разрешение Интернет

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.testhttp" 
    android:versionCode="1" 
    android:versionName="1.0" > 

     <uses-permission android:name="android.permission.INTERNET" /> 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="17" /> 
+0

Используйте LogCat для изучения трассировки стека Java, связанный с «ошибкой». Если вы не понимаете трассировку стека, отредактируйте свой вопрос и опубликуйте его здесь. – CommonsWare

+0

раскомментируйте 'e.printStackTrace()' и посмотрите, что является исключением в logcat – Navid777

+0

см. Http://stackoverflow.com/questions/22395417/error-strictmodeandroidblockguardpolicy-onnetwork – user4805969

ответ

2

, кажется, как вы пытаетесь сделать http запрос в потоке UI.

положите ваш запрос в другой поток.

+0

@ user2068102 удалить Toast.makeText (getApplicationContext(), " ok ", Toast.LENGTH_LONG) .show(); из блока try, а также из блока catch и используйте Log.d («OK», «Ok»); как в try, так и в catch block и увидеть результаты в logCat! –

+0

если вы хотите использовать Toast, чем использовать его в качестве:. RunOnUiThread (новый Runnable() { @Override общественности недействительным запуска() { Toast.makeText (.....) шоу();} }); –

+0

@ пользователь2068102 приветствуется :) –

0

Вы также можете использовать этот код, чтобы сделать запрос HTTP:

public class RequestClient extends AsyncTask<String, Void, String>{ 
     Context context; 

     public RequestClient(Context c) { 
      context = c; 
     } 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
     } 

     @Override 
     protected String doInBackground(String... aurl){ 
     String responseString=""; 
     HttpClient client = null; 
     try { 
      client = new DefaultHttpClient(); 
      HttpGet get = new HttpGet(LoginActivity.url); 
      HttpResponse responseGet = client.execute(get); 
      HttpEntity resEntityGet = responseGet.getEntity(); 
      if (resEntityGet != null) { 
       responseString = EntityUtils.toString(resEntityGet); 
       Log.i("GET RESPONSE", responseString.trim()); 
      } 
     } catch (Exception e) { 
      Log.d("ANDRO_ASYNC_ERROR", "Error is "+e.toString()); 
     } 
      Log.d("ANDRO_ASYNC_RESPONSE", responseString.trim()); 
      client.getConnectionManager().shutdown(); 
     return responseString.trim(); 

     } 


     @Override 
     protected void onPostExecute(String response) { 
      super.onPostExecute(response); 
      } 
    }