2016-09-16 5 views
-3

HttpURLConnectionを使用してGoogleに簡単なGTTP GETコマンドを送信しようとしていますが、urlConnection.connect()で 'null'例外がスローされます。私はマニフェストにインターネットとACCESS_NETWORK_STATEの両方の権限を持っています。なぜ私は接続を確立できないのですか?HttpURLConnectionはHTTP GETの接続を確立できません。例外:null

public class MainActivity extends AppCompatActivity { 

TextView textView; 
private URL url; 
byte[] answer; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    textView = (TextView) findViewById(R.id.textID); 
    Log.i("Trace", "A"); 

    try{ 
     url = new URL("http", "www.google.com", 80, "index.html"); 
     HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 

     Log.i("Trace", "B"); 

     urlConnection.setDoOutput(true); 
     urlConnection.setRequestMethod("GET"); 
     urlConnection.setAllowUserInteraction(true); 
     urlConnection.setDoInput(true); 
     urlConnection.setDoOutput(true); 

     Log.i("Trace", "C"); 
     //urlConnection.setInstanceFollowRedirects(false); 

     urlConnection.connect(); //BREAKS HERE 
     Log.i("Trace", "D"); 

     InputStream in = urlConnection.getInputStream(); 

     Log.i("Trace", "E"); 
     byte[] b = new byte[10]; 
     in.read(b); 
     textView.setText(b.toString()); 
    } 
    catch (Exception e){ 
     Log.i("Trace", "Exception: " + e.getMessage()); 
    } 
} 
} 
+1

HTTPコールをAsynctaskに入れ、バックグラウンドタスクとして呼び出します。それは動作するはずです。 –

+0

ヒント:[Use Volley](https://developer.android.com/training/volley/request.html) –

+0

そして、私はそれが 'ヌル'エクスプローションではないと思います。 NetworkOnMainThread例外である必要があります。 –

答えて

0

AsynctaskでHTTP呼び出しを行うことができました。

関連する問題