2015-01-12 2 views
-1

사용자 이름과 암호를 인수로 사용해야하는 authenticate라는 함수를 만들려고합니다. 이 함수는 새로운 스레드를 만들고 데이터를 .php 파일에 게시하고 인증 결과를 반환합니다. 내가 직면하고있는 문제는 IOException이 발생하고 이유를 파악할 수 없다는 것입니다. 관련 기능과 LogCat을 여기에서 공유하고 있습니다. 어떤 도움을 주시면 감사하겠습니다.IOException! Connection refused

을 인증 기능 :

private boolean authenticate (final String userName, final String password) throws ClientProtocolException, IOException, InterruptedException { 

    Thread httpThread = new Thread (new Runnable() { 

     @Override 
     public void run() { 
      HttpClient client = new DefaultHttpClient(); 
      HttpPost postHandle = new HttpPost (projectFolder + "appSupport/appBackEnd.php"); 
      Log.d ("Connection",projectFolder + "appSupport/appBackEnd.php"); 

      List <NameValuePair> credentials = new ArrayList <NameValuePair>(); 

      credentials.add (new BasicNameValuePair ("action", "authenticate")); 
      credentials.add (new BasicNameValuePair ("username", userName)); 
      credentials.add (new BasicNameValuePair ("password", password)); 

      try { 

       postHandle.setEntity(new UrlEncodedFormEntity(credentials)); 
       Log.d ("Connection", "Entity Set!"); 

       HttpResponse response = client.execute(postHandle); 
       Log.d ("Connection", "Executed!"); 

       String res = response.getEntity().toString(); 
       Log.d ("Connection", "Response" + res); 

       if (res.equals("1")) 
        result = true;  // result is a global variable 
       else 
        result = false; 
      } 
      catch (UnsupportedEncodingException e) { 
       Log.d ("Connection", "Exception! UnsupportedEncodingException"); 
       e.printStackTrace(); 
      } catch (ClientProtocolException e) { 
       // TODO Auto-generated catch block 
       Log.d ("Connection", "Exception! ClientProtocolException"); 
       e.printStackTrace(); 
      } catch (IOException e) { 
       Log.d ("Connection", "Exception! IOException"); 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    }); 

    httpThread.start(); 
    httpThread.join(); 
    return result; 

} 

로그 캣 :

01-12 23:17:33.566: D/PackageItemInfo(32301): loadIcon(cached)name=com.example.dummyproject.SignIn 
01-12 23:17:33.636: D/dalvikvm(32301): GC_FOR_ALLOC freed 66K, 65% free 4474K/12760K, paused 23ms, total 23ms 
01-12 23:17:33.666: I/dalvikvm-heap(32301): Grow heap (frag case) to 18.562MB for 12582928-byte allocation 
01-12 23:17:33.696: D/dalvikvm(32301): GC_CONCURRENT freed 3K, 34% free 16759K/25052K, paused 2ms+2ms, total 31ms 
01-12 23:17:34.327: D/libEGL(32301): loaded /system/lib/egl/libEGL_adreno200.so 
01-12 23:17:34.327: D/libEGL(32301): loaded /system/lib/egl/libGLESv1_CM_adreno200.so 
01-12 23:17:34.337: D/libEGL(32301): loaded /system/lib/egl/libGLESv2_adreno200.so 
01-12 23:17:34.347: I/Adreno200-EGL(32301): <qeglDrvAPI_eglInitialize:265>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_JB_2.5.04.02.02.040.400_msm8960_JB_2.5_CL3744273_release_AU (CL3744273) 
01-12 23:17:34.347: I/Adreno200-EGL(32301): Build Date: 06/30/13 Sun 
01-12 23:17:34.347: I/Adreno200-EGL(32301): Local Branch: 
01-12 23:17:34.347: I/Adreno200-EGL(32301): Remote Branch: quic/jb_2.5 
01-12 23:17:34.347: I/Adreno200-EGL(32301): Local Patches: NONE 
01-12 23:17:34.347: I/Adreno200-EGL(32301): Reconstruct Branch: AU_LINUX_ANDROID_JB_2.5.04.02.02.040.400 + NOTHING 
01-12 23:17:34.427: D/OpenGLRenderer(32301): Enabling debug mode 0 
01-12 23:17:38.381: D/Connection(32301): http://192.168.1.2:8080/submitted/appSupport/appBackEnd.php 
01-12 23:17:38.381: D/Connection(32301): Entity Set! 
01-12 23:17:38.431: D/Connection(32301): Exception! IOException 
01-12 23:17:38.431: W/System.err(32301): org.apache.http.conn.HttpHostConnectException: Connection to http://192.168.1.2:8080 refused 
01-12 23:17:38.431: W/System.err(32301): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:191) 
01-12 23:17:38.431: W/System.err(32301): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
01-12 23:17:38.431: W/System.err(32301): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
01-12 23:17:38.431: W/System.err(32301): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 
01-12 23:17:38.431: W/System.err(32301): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
01-12 23:17:38.431: W/System.err(32301): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
01-12 23:17:38.431: W/System.err(32301): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
01-12 23:17:38.431: W/System.err(32301): at com.example.dummyproject.SignIn$3.run(SignIn.java:107) 
01-12 23:17:38.431: W/System.err(32301): at java.lang.Thread.run(Thread.java:856) 
01-12 23:17:38.442: W/System.err(32301): Caused by: java.net.ConnectException: failed to connect to /192.168.1.2 (port 8080): connect failed: ECONNREFUSED (Connection refused) 
01-12 23:17:38.442: W/System.err(32301): at libcore.io.IoBridge.connect(IoBridge.java:118) 
01-12 23:17:38.442: W/System.err(32301): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192) 
01-12 23:17:38.442: W/System.err(32301): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459) 
01-12 23:17:38.442: W/System.err(32301): at java.net.Socket.connect(Socket.java:847) 
01-12 23:17:38.442: W/System.err(32301): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119) 
01-12 23:17:38.442: W/System.err(32301): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:152) 
01-12 23:17:38.442: W/System.err(32301): ... 8 more 
01-12 23:17:38.442: W/System.err(32301): Caused by: libcore.io.ErrnoException: connect failed: ECONNREFUSED (Connection refused) 
01-12 23:17:38.442: W/System.err(32301): at libcore.io.Posix.connect(Native Method) 
01-12 23:17:38.442: W/System.err(32301): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85) 
01-12 23:17:38.442: W/System.err(32301): at libcore.io.IoBridge.connectErrno(IoBridge.java:131) 
01-12 23:17:38.442: W/System.err(32301): at libcore.io.IoBridge.connect(IoBridge.java:116) 
01-12 23:17:38.442: W/System.err(32301): ... 13 more 
01-12 23:17:38.442: D/DEBUG(32301): could not authenticate 
+0

당신의 매니페스트 파일, 즉'Socket' 호출을위한'INTERNET'과 데이터를 .php 파일로 저장하는'WRITE_EXTERNAL_STORAGE'에 적절한 권한을 추가 했습니까 – Willis

+0

이것은 내가 추가 한 권한입니다. 충분하지 않아? –

+0

퍼미션을 잊어 버렸습니다. 스택 추적을 읽지 않은 사람의 일반적인 응답입니다. 허가가 누락 된 경우 예외가 표시됩니다. 에뮬레이터를 사용하고 있는지 말하지 않았지만 http://developer.android.com/tools/devices/emulator.html#networkaddresses – Simon

답변

0

는 나 자신이 문제를 알아 냈어. 내 PC (USB 서버가 실행 중)에서 다른 Wi-Fi 연결을 사용하고 있고 내 앱을 실행하는 휴대 전화에서 다른 Wi-Fi 연결을 사용하고 있기 때문에 응용 프로그램이 서버에 연결할 수 없었던 이유.