2016-04-25 18 views
0

ログインボタンをクリックすると、「ログインしようとしています」というメッセージだけが表示され、アプリケーション内にアクティビティはなく、ボタンをクリックしてもLOGCAT「java.net.ConnectException :15000ms後に/127.0.0.1(ポート80)への接続に失敗しました:isConnected failed:ECONNREFUSED(Connection refused) "実行前と実行中のバックグラウンドタスクではないかもしれません。ポート80への接続に失敗しました

Login.java --->

public class Login extends Activity { 
     AutoCompleteTextView UsernameEt; 
     EditText PasswordEt; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_login); 
      UsernameEt = (AutoCompleteTextView) findViewById(R.id.email); 
      PasswordEt = (EditText) findViewById(R.id.password); 
     } 

     class PostAsync extends AsyncTask<String, String, JSONObject> { 
      JSONParser jsonParser = new JSONParser(); 

      private ProgressDialog pDialog; 

      // private static final String LOGIN_URL = "http://10.0.3.2:8080/login3.php"; 
      // private static final String LOGIN_URL = "http://192.168.*.*/login3.php"; 
      private static final String LOGIN_URL = "http://127.0.0.1/login3.php"; 

      private static final String TAG_SUCCESS = "success"; 
      private static final String TAG_MESSAGE = "message"; 


      @Override 
      protected void onPreExecute() { 
       pDialog = new ProgressDialog(Login.this); 
       pDialog.setMessage("Attempting login..."); 
       pDialog.setIndeterminate(false); 
       pDialog.setCancelable(true); 
       pDialog.show(); 
      } 

      @Override 
      protected JSONObject doInBackground(String... args) { 

       try { 

        HashMap<String, String> params = new HashMap<>(); 
        params.put("name", args[0]); 
        params.put("password", args[1]); 

        Log.d("request", "starting"); 

        JSONObject json = jsonParser.makeHttpRequest(
          LOGIN_URL, "POST", params); 

        if (json != null) { 
         Log.d("JSON result", json.toString()); 

         return json; 
        } 

       } catch (Exception e) { 
        e.printStackTrace(); 
       } 

       return null; 
      } 

      protected void onPostExecute(JSONObject json) { 

       int success = 0; 
       String message = ""; 

       if (pDialog != null && pDialog.isShowing()) { 
        pDialog.dismiss(); 
       } 

       if (json != null) { 
        Toast.makeText(Login.this, json.toString(), 
          Toast.LENGTH_LONG).show(); 

        try { 
         success = json.getInt(TAG_SUCCESS); 
         message = json.getString(TAG_MESSAGE); 
        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 

       if (success == 1) { 
        Log.d("Success!", message); 
       }else{ 
        Log.d("Failure", message); 
       } 
      } 

     } 

     public void OnLogin(View view) { 
      String username = UsernameEt.getText().toString(); 
      String password = PasswordEt.getText().toString(); 

      new PostAsync().execute(username, password); 

     } 
    } 

................................ ................................................ JsonParser .java ---->

public class JSONParser { 

    String charset = "UTF-8"; 
    HttpURLConnection conn; 
    DataOutputStream wr; 
    StringBuilder result; 
    URL urlObj; 
    JSONObject jObj = null; 
    StringBuilder sbParams; 
    String paramsString; 

    public JSONObject makeHttpRequest(String url, String method, 
             HashMap<String, String> params) { 

     sbParams = new StringBuilder(); 
     int i = 0; 
     for (String key : params.keySet()) { 
      try { 
       if (i != 0){ 
        sbParams.append("&"); 
       } 
       sbParams.append(key).append("=") 
         .append(URLEncoder.encode(params.get(key), charset)); 

      } catch (UnsupportedEncodingException e) { 
       e.printStackTrace(); 
      } 
      i++; 
     } 

     if (method.equals("POST")) { 
      // request method is POST 
      try { 
       urlObj = new URL(url); 

       conn = (HttpURLConnection) urlObj.openConnection(); 

       conn.setDoOutput(true); 

       conn.setRequestMethod("POST"); 

       conn.setRequestProperty("Accept-Charset", charset); 

       conn.setReadTimeout(10000); 
       conn.setConnectTimeout(15000); 

       conn.connect(); 

       paramsString = sbParams.toString(); 

       wr = new DataOutputStream(conn.getOutputStream()); 
       wr.writeBytes(paramsString); 
       wr.flush(); 
       wr.close(); 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
     else if(method.equals("GET")){ 
      // request method is GET 

      if (sbParams.length() != 0) { 
       url += "?" + sbParams.toString(); 
      } 

      try { 
       urlObj = new URL(url); 

       conn = (HttpURLConnection) urlObj.openConnection(); 

       conn.setDoOutput(false); 

       conn.setRequestMethod("GET"); 

       conn.setRequestProperty("Accept-Charset", charset); 

       conn.setConnectTimeout(15000); 

       conn.connect(); 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

     } 

     try { 
      //Receive the response from the server 
      InputStream in = new BufferedInputStream(conn.getInputStream()); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
      result = new StringBuilder(); 
      String line; 
      while ((line = reader.readLine()) != null) { 
       result.append(line); 
      } 

      Log.d("JSON Parser", "result: " + result.toString()); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     conn.disconnect(); 

     // try parse the string to a JSON object 
     try { 
      jObj = new JSONObject(result.toString()); 
     } catch (JSONException e) { 
      Log.e("JSON Parser", "Error parsing data " + e.toString()); 
     } 

     // return JSON Object 
     return jObj; 
    } 
} 
+0

、あなたの携帯電話のlocalhostのポート80に接続しようとしているか、コンピュータからエミュレータをデータにアクセスしようとしています実行中ですか? – Emmanuel

+0

私はgenymotion.Iでそれを実行しています。私はすでに "http://10.0.3.2:8080/login3.php"を試しています; .......... "http://192.168.*.*/ login3.php "; ......... " http://127.0.0.1/login3.php "; –

+0

あなたはホストPC上のこれらの行に沿ってApacheなどを実行していますか? – Emmanuel

答えて

-1

使用10.0.2.2代わりに127.0.0.1やlocalhostの

関連する問題