2017-05-04 7 views
1

JSON 응답이있는 GET 메서드를 사용하여 webservice를 실행하려고했습니다. 안드로이드를 통해하지만 연결이 거부 된 예외를 던지고있다. 브라우저에서 URL을 눌러 응답을받을 수 있지만 응답을 가져 오는 데는 약 30 초가 걸립니다. 내 응용 프로그램을 실행할 때 응답을 기다리고 연결이 끊어지면 예외가 거부됩니다. 도와주세요. RESP() 메소드를HttpHostConnectException : 연결이 거부되었습니다.

public class ExecuteTask extends AsyncTask<String,Integer,String>{ 


    @Override 
    protected String doInBackground(String... params) { 
     System.out.println("into async task"); 
     String res=resp(); 
     System.out.println("into execute task"+ res); 
     return res; 

    } 
    @Override 
    protected void onPostExecute(String result) { 
     pro.setVisibility(View.GONE); 
     //progess_msz.setVisibility(View.GONE); 

    } 
} 

RESP() 메서드를 호출합니다 (의 OnClick 방법으로 구성)

Login.java

class Login{ 

login.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 
       pro.setVisibility(View.VISIBLE); 
       new ExecuteTask().execute(); 
       /* do{ 
        pro.setVisibility(View.VISIBLE); 
       }while (response=resp())*/ 




       /* if(response.contains("name")){ 

        startActivity(new Intent(Login.this,Tab.class)); 
        overridePendingTransition(R.anim.enter, R.anim.exit); 
       } 
       else if(response.contains("errorMessages")){ 
        showPopUp(); 

       } 
       else if(response.contains("<html>")||response.contains("site can't be reached")){ 
        showerrorPopUp(); 
       } 
       else{ 
        showerrorPopUp(); 

       }*/ 

      } 

     }); 

비동기 작업 : 나 HTTP 연결 코드로 구성됩니다. public string resp() { System.out.println ("resp strt");

 System.out.println("into resp"); 
     HttpClient httpClient = new DefaultHttpClient(); 
     HttpGet httpGet = new HttpGet(append(URL)); 
     try { 
      HttpEntity httpEntity = httpClient.execute(httpGet).getEntity(); 
      if (httpEntity != null) { 
       InputStream inputStream = httpEntity.getContent(); 
       BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 
       final StringBuilder stringBuilder = new StringBuilder(); 
       String cen = null; 

       while ((cen = bufferedReader.readLine()) != null) { 

        /* Intent intent=new Intent(Login.this,MainActivity.class); 
        startActivity(intent);*/ 
        stringBuilder.append(cen + "n"); 
       } 
       inputStream.close(); 

       resp = stringBuilder.toString(); 
       /*text.setText(resp);*/ 
       System.out.println("response" + resp); 

      } 
     } catch (ClientProtocolException e) { 
      Toast.makeText(Login.this, e.toString(), Toast.LENGTH_LONG); 
     } catch (IOException e) { 
      e.printStackTrace(); 
      Toast.makeText(Login.this, e.toString(), Toast.LENGTH_LONG); 
     } 
     System.out.println("resp end"); 
     return resp; 



    } 

APPEND() 메소드

public String append(String url){ 
     url+=userName.getText().toString()+"/"+ password.getText().toString(); 
     System.out.println("username"+userName.getText().toString()); 

     return url; 
    } 

**error** 
W/System.err: org.apache.http.conn.HttpHostConnectException: Connection to http://180.211.68.232:8080 refused 
W/System.err:  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:193) 
W/System.err:  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:169) 
W/System.err:  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:124) 
W/System.err:  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:366) 
W/System.err:  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:560) 
W/System.err:  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:492) 
W/System.err:  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:470) 
W/System.err:  at hello.com.navigationdrawer.Login.resp(Login.java:156) 
W/System.err:  at hello.com.navigationdrawer.Login$ExecuteTask.doInBackground(Login.java:248) 
W/System.err:  at hello.com.navigationdrawer.Login$ExecuteTask.doInBackground(Login.java:242) 
W/System.err:  at android.os.AsyncTask$2.call(AsyncTask.java:295) 
W/System.err:  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
W/System.err:  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
W/System.err:  at java.lang.Thread.run(Thread.java:818) 
W/System.err: Caused by: java.net.ConnectException: failed to connect to /180.211.68.232 (port 8080): connect failed: ETIMEDOUT (Connection timed out) 
W/System.err:  at libcore.io.IoBridge.connect(IoBridge.java:124) 
W/System.err:  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183) 
W/System.err:  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:452) 
W/System.err:  at java.net.Socket.connect(Socket.java:884) 
W/System.err:  at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:124) 
W/System.err:  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:149) 
W/System.err: ... 15 more 
W/System.err: Caused by: android.system.ErrnoException: connect failed: ETIMEDOUT (Connection timed out) 
W/System.err:  at libcore.io.Posix.connect(Native Method) 
W/System.err:  at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:111) 
W/System.err:  at libcore.io.IoBridge.connectErrno(IoBridge.java:137) 
W/System.err:  at libcore.io.IoBridge.connect(IoBridge.java:122) 
W/System.err: ... 20 more 

URL 최종 문자열 URL = "http://180.211.68.232:8080/JIRAservice-1.0-SNAPSHOT/rest/login/";

+0

발리 라이브러리를 사용하십시오. –

+0

정상적인 방법으로 텍스트를 게시하십시오. 코드 블록에 없습니다. 귀하의 문제를 읽으려면 스크롤을 풀어주십시오. – greenapps

답변

0

이 오류는 시간 초과 오류 였지만 시간 제한이 설정되어 있어도 해결할 수 없었습니다. 다른 시간 초과로 시도했습니다