2017-11-25 21 views
-2

私はAndroid開発で新しいものですが、私は奇妙な問題を抱えています。Android Httpurlconnectionの問題 - .connectの後に何も起こらない

次のコードが動作するようになっている:

URL url = new URL("http://127.0.0.1/test.html"); 
HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
connection.setRequestMethod("GET"); 
connection.connect(); 

int code = connection.getResponseCode(); 
System.out.println("code: "+code); 

問題は、私が)(connection.connectを行った後、接続後にtextX.setText()を追加しても、何も起こりません。何もできません。

何が問題なのでしょうか?

これは私の全方法です。私がしようとしているのは、実際には「OK」と書かれているAPIのテキストを取得することですが、動作させることはできません。 HTTPクライアントコードで「間違っている」何かがありませんでした

public void conn (View view) 
    { 
     TextView text2 = (TextView)findViewById(R.id.text2); 
     text2.setText("connecting..."); 
     String output=""; 
     //All working until here 
     URL url; 
     HttpURLConnection urlConnection = null; 
     try { 
      output="about to connect"; 
      text2.setText(output); 
      url = new URL("http://127.0.0.1:4444/localweb/api/api.php"); 

      HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 

      connection.setRequestMethod("GET"); 
      connection.connect(); 
      InputStream in = urlConnection.getInputStream(); 
      text2.append("\nabout to get code"); 
      int code = connection.getResponseCode(); 
      text2.setText(Integer.toString(code)); 

      //urlConnection = (HttpURLConnection) url.openConnection(); 
      //urlConnection.connect(); 
      //output=urlConnection.getResponseMessage(); 
      //text2.setText(output); 


      InputStreamReader isw = new InputStreamReader(in); 

      int data = isw.read(); 
      while (data != -1) { 
       char current = (char) data; 
       data = isw.read(); 
       System.out.print(current); 
       output=output+current; 
      } 
      //text2.setText(output); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } finally { 
      if (urlConnection != null) { 
       urlConnection.disconnect(); 
      } 
     } 
    } 
+1

localhost(127.0.0.1)が意味することは...明らかに、httpサーバがデバイス自体にない場合、これは動作しません。 – Selvin

+0

@Selvin、127.0.0.1がここに投稿されました。公共IP何がそこに行く – Marco

+0

明らかにあなたはlogcatの出力を読む必要があります – Selvin

答えて

0

、問題は私がやろうとしたとして、あなたは親スレッドからhttpurlclientを起動することはできませんということです、それはを通じて、バックグラウンドで実行されなければなりませんAsyncTask、すべてのhttpurlconnectionのものを追加の非同期関数に移動した後、私は必要なすべてのWebの詳細を取得できました。

関連する問題