2017-06-01 165 views
0

我正在尝试为我的android应用程序进行注册活动。我正在使用AsyncTask来执行此操作。但是代码似乎没有连接到我的服务器(不是本地主机)上的数据库,因为它没有显示任何连接到Android调试器和监视器中的服务器。帮帮我?AsyncTask中的doInBackground()无法建立连接

private void registrationProcess(String name, String email, String mob, String password) 

{

String urlSuffix = "?userName=" + name + "&userMobile=" + mob + "&userEmail=" + email + "&userPassword=" + password; 
class RegistrationProcess extends AsyncTask<String, Void, String> { 

    ProgressDialog loadingRegister; 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     loadingRegister = ProgressDialog.show(RegisterActivity.this, "Registering...", "Please wait...", true, true); 
    } 

    @Override 
    protected void onPostExecute(String s) { 
     super.onPostExecute(s); 
    } 

    @Override 
    protected String doInBackground(String... params) { 
     String s = params[0]; 
     BufferedReader bufferedreader = null; 
      try { 
       URL url = new URL(REGISTER_URL + s); 
       HttpURLConnection con = (HttpURLConnection) url.openConnection(); 
       con.connect(); 
       bufferedreader = new BufferedReader(new InputStreamReader(con.getInputStream())); 
       String result = bufferedreader.readLine(); 
       con.disconnect(); 
       return result; 
      } 
      catch (Exception ex) 
      { 
       System.out.println(ex.getMessage()); 
       return null; 
      } 
    } 
} 
RegistrationProcess rgp = new RegistrationProcess(); 
rgp.execute(urlSuffix); 

}

+0

你应该表现出至少你是这样做的方式,否则,无法与你的问题 –

+0

当然帮助,我只是补充说。 –

+0

试着在你的catch中添加这个:System.out.println(ex.getMessage())或者其他东西来查看异常,因为你没有处理你的异常,只是返回null ... –

回答

0
 Try this code 

    @Override 
    protected String doInBackground(String... params) { 
     // entrer URL ou le fichier php réside 
     String s = params[0]; 
     try { 
      url = new URL(REGISTER_URL+s); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
      return "exception"; 
     } 
     try{ 
      conn = (HttpURLConnection)url.openConnection(); 
      conn.setReadTimeout(READ_TIMEOUT); 
      conn.setConnectTimeout(CONNEXTION_TIMEOUT); 
      conn.setRequestMethod("POST"); 

      conn.setDoInput(true); 
      conn.setDoOutput(true); 

      // apprend parameters to URL 
      Uri.Builder builder = new Uri.Builder() 
        .appendQueryParameter("somthing",params[0 or 1 or ...]); 
      String query = builder.build().getEncodedQuery(); 

      // ouvrir une connexion pour envoyer des informations 
      OutputStream os = conn.getOutputStream(); 
      BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8")); 
      writer.write(query); 
      writer.flush(); 
      writer.close(); 
      os.close(); 
      conn.connect(); 

     }catch (IOException e){ 
      e.printStackTrace(); 
      return "Exception"; 
     } 

     try{ 

      int response_code = conn.getResponseCode(); 
      if(response_code == HttpURLConnection.HTTP_OK){ 
       //Lire data envoyer depuis le serveur 
       InputStream input = conn.getInputStream(); 
       BufferedReader reader = new BufferedReader(new 
       InputStreamReader(input)); 
       StringBuilder result = new StringBuilder(); 
       String line; 

       while((line = reader.readLine())!=null){ 
        result.append(line); 
       } 
       //envoyer data to "" onPostExecute "" methode 
       return(result.toString()); 
      } 
      else{ 
       return("Echec..."); 
      } 
     }catch (IOException e){ 
      e.printStackTrace(); 
      return "Exception"; 
     } 
     finally{ 
      conn.disconnect(); 
     } 
    } //