2017-11-25 1 views
-2

저는 안드로이드 개발에 새로운 것이고 이상한 문제가 있습니다.안드로이드 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()를 추가하더라도 아무 일도 일어나지 않습니다. 어떤 작업도 수행 할 수 없습니다.

어떤 문제 일 수 있습니까?

이것은 내 전체 방법입니다. 실제로 "확인"이라고하는 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 물건을 추가 비동기 함수로 옮긴 후 필요한 모든 웹 세부 정보를 얻을 수 있습니다.

관련 문제