title: java.net.ConnectException:Failed to connect to /10.0.2.2:443
body: <p>I am working on an android app that requires user authentication. I am using localhost phpadmin for server and database connexion. The app so far has 1 login activity that imports a php url to connect to localhost. If everything works fine the app is supposed to show an alertDialog saying that login was successful. But whenever i try running the app, when i click login it shows an empty alertDialog and the AndroidStudio debugger shows this error : <code>java.net.ConnectException:Failed to connect to /10.0.2.2:443</code></p>
  <p>This is the code  for MainActivity :</p>
  <pre><code>
  import androidx.appcompat.app.AppCompatActivity;
  
  import android.os.Bundle;
  import android.view.View;
  import android.widget.EditText;
  
  public class MainActivity extends AppCompatActivity {
  EditText UsernameEt , PasswordEt;
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          UsernameEt= (EditText)findViewById(R.id.editTextTextPersonName);
          PasswordEt= (EditText)findViewById(R.id.editTextTextPassword);
  
      }
      public void OnLogin(View view) {
          String username= UsernameEt.getText().toString();
          String password= PasswordEt.getText().toString();
          BackroundWorker backroundWorker=new BackroundWorker(this);
          String type= &quot;login&quot;;
          backroundWorker.execute(type,username,password);
      }
  } 
  </code></pre>
  <p>and this is the code for BackroundWorker class:</p>
  <pre><code>package com.android.example.meetmev0;
  
  import android.app.AlertDialog;
  import android.content.Context;
  import android.os.AsyncTask;
  import android.util.Log;
  
  import java.io.BufferedReader;
  import java.io.BufferedWriter;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.io.OutputStream;
  import java.io.OutputStreamWriter;
  import java.net.MalformedURLException;
  import java.net.URL;
  import java.net.URLEncoder;
  
  import javax.net.ssl.HttpsURLConnection;
  
  public class BackroundWorker extends AsyncTask&lt;String,Void,String&gt; {
  Context context;
  AlertDialog alertDialog;
  public BackroundWorker ( Context ctx) {
      context=ctx;
  }
      @Override
      protected String doInBackground(String... voids) {
      String type = voids[0];
      String login_url= &quot;https://10.0.2.2/MeetLogin.php&quot;;
      if(type.equals(&quot;login&quot;))
      {
          String test=&quot;so far so good&quot;;
          try {
              String username = voids[1];
              String password = voids[2];
              URL url= new URL(login_url);
              HttpsURLConnection httpsURLConnection = (HttpsURLConnection)url.openConnection();
              httpsURLConnection.setRequestMethod(&quot;POST&quot;);
              httpsURLConnection.setDoOutput(true);
              httpsURLConnection.setDoInput(true);
              OutputStream outputStream= httpsURLConnection.getOutputStream();
              test= &quot; still good&quot;;
              BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, &quot;UTF-8&quot;));
              String post_data= URLEncoder.encode(&quot;username &quot;, &quot;UTF-8&quot;)+&quot;=&quot;+URLEncoder.encode(username , &quot;UTF-8&quot;)+&quot;&amp;&quot;
                      +URLEncoder.encode(&quot;password&quot;, &quot;UTF-8&quot;)+&quot;=&quot;+URLEncoder.encode(password , &quot;UTF-8&quot;);
              bufferedWriter.write(post_data);
              bufferedWriter.flush();
              bufferedWriter.close();
              outputStream.close();
              InputStream inputStream = httpsURLConnection.getInputStream();
              BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,&quot;ISO-8859-1&quot;));
              String result=&quot;&quot;;
              String line=&quot;&quot;;
              while((line = bufferedReader.readLine())!=null){
                  result+=line;
              }
              bufferedReader.close();
              inputStream.close();
              httpsURLConnection.disconnect();
              Log.v(&quot;Activity test: &quot;, result);
              return result;
          } catch (IOException e) {
              e.printStackTrace();
          }
      }
          return null;
      }
  
      @Override
      protected void onPreExecute() {
          alertDialog= new AlertDialog.Builder(context).create();
          alertDialog.setTitle(&quot;Login Status&quot;);
  
      }
  
      @Override
      protected void onPostExecute(String result) {
          alertDialog.setMessage(result);
          alertDialog.show();
      }
  
      @Override
      protected void onProgressUpdate(Void... values) {
          super.onProgressUpdate(values);
      }
  }
  
  </code></pre>
  <p>using breakpoints i found out that this line <code> OutputStream outputStream= httpsURLConnection.getOutputStream();</code> is what's throwing the exception.</p>
  <p>This is my AndroidManifest file :</p>
  <pre><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
  &lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
      package=&quot;com.android.example.meetmev0&quot;&gt;
  &lt;uses-permission android:name=&quot;android.permission.INTERNET&quot;&gt;&lt;/uses-permission&gt;
      &lt;application
          android:allowBackup=&quot;true&quot;
          android:icon=&quot;@mipmap/ic_launcher&quot;
          android:label=&quot;@string/app_name&quot;
          android:roundIcon=&quot;@mipmap/ic_launcher_round&quot;
          android:supportsRtl=&quot;true&quot;
          android:theme=&quot;@style/AppTheme&quot;
          android:usesCleartextTraffic=&quot;true&quot;&gt;
  
          &lt;activity android:name=&quot;.MainActivity&quot;&gt;
              &lt;intent-filter&gt;
                  &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
  
                  &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
              &lt;/intent-filter&gt;
          &lt;/activity&gt;
      &lt;/application&gt;
  
  &lt;/manifest&gt;
  
  </code></pre>
  <p>I tried adding ports 80,8080 and 8888 but it didn't work. Swapping <code>10.0.2.2</code>to <code>localhost</code>or to  my local ip didn't work either.</p>