HttpHostConnectException:连接被拒绝

时间:2017-05-04 06:36:47

标签: android apache apache-commons-httpclient

我一直试图通过使用具有JSON响应的GET方法来访问webservice。通过android但是抛出连接拒绝异常。我可以在浏览器上点击URL并获得响应,但获取响应大约需要30秒。当我运行我的应用程序时,它等待响应并抛出连接拒绝异常。请帮忙。

Login.java(由OnClick方法组成)

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();

               }*/

            }

        });

异步任务 调用resp()方法

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()方法:  此方法由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;



    }

追加()方法

 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

网址     final String URL =“http://180.211.68.232:8080/JIRAservice-1.0-SNAPSHOT/rest/login/”;

1 个答案:

答案 0 :(得分:0)

此错误是超时错误,但即使设置了超时也无法解决。试过不同的超时