2017-04-02 126 views
-2

我使用android studio從用戶獲取信息並將其插入到外部數據庫中,並且我在YouTube上看到很多視頻,但運行時仍存在問題:「註冊成功」,但不插入到數據庫在android studio中插入信息到外部數據庫

這是我在Android Studio中的代碼

公共類註冊擴展AppCompatActivity {

EditText email,password,name; 
Switch visually_impaired; 
String Email,Password,Name,Visually_impaired,Beacon_alert,Buildings_alert;; 
Context ctx = this; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_signup); 
    name = (EditText) findViewById(R.id.name_editText); 
    password = (EditText) findViewById(R.id.password_editText); 
    email = (EditText) findViewById(R.id.email_editText); 
    visually_impaired = (Switch) findViewById(R.id.blindOpt); 

} 

public void register(View v){ 
    Email = email.getText().toString(); 
    Name = name.getText().toString(); 
    Password = password.getText().toString(); 
    Visually_impaired = visually_impaired.getText().toString(); 
    BackGround b = new BackGround(this); 
    b.execute(Email,Password,Name,Visually_impaired); 
} 

class BackGround extends AsyncTask<String,String,String> { 

    Context ctx; 
    public BackGround(Context ctx){ 
     this.ctx = ctx; 
    } 

    @Override 
    protected String doInBackground(String... strings) { 
     String email = strings[0]; 
     String password = strings[1]; 
     String name = strings[2]; 
     String visually_impaired = strings[3]; 

     try { 
      URL url = new URL("http://ksuexpress.com/register.php"); 
      HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); 
      httpURLConnection.setRequestMethod("POST"); 
      httpURLConnection.setDoOutput(true); 
      OutputStream os = httpURLConnection.getOutputStream(); 
      BufferedWriter bufferWriter = new BufferedWriter(new OutputStreamWriter(os,"UTF-8")); 
      String data = URLEncoder.encode("email","UTF-8")+ " = "+URLEncoder.encode(email,"UTF-8") +"&"+ 
        URLEncoder.encode("password","UTF-8")+ " = "+URLEncoder.encode(password,"UTF-8") +"&"+ 
        URLEncoder.encode("name","UTF-8")+ " = "+URLEncoder.encode(name,"UTF-8") +"&"+ 
        URLEncoder.encode("visually_impaired","UTF-8")+ " = "+URLEncoder.encode(visually_impaired,"UTF-8"); 
      bufferWriter.write(data); 
      bufferWriter.flush(); 
      bufferWriter.close(); 
      os.close(); 
      InputStream is = httpURLConnection.getInputStream(); 
      is.close(); 
      return "Registration success...."; 

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

     return null; 
    } 

    @Override 
    protected void onPostExecute(String result){ 
     Toast.makeText(ctx,result,Toast.LENGTH_LONG).show(); 

    } 
} 

}

,也是我有一個PHP代碼中使用POST服務器並將其插入到數據庫

誰能幫助我,請...

+0

檢查這個項目在GitHub上,它確實你在尋找什麼https://github.com/AnanthaRajuCprojects/Android-HTTP-Post –

回答

0

一些可能的解決方法:

  1. 變化" = ""="無空格
  2. doInBackground中添加一些日誌,並確保您獲得了正確的參數到電子郵件,密碼等。
  3. 變化InputStream is = httpURLConnection.getInputStream(); is.close();httpURLConnection.connect();
+0

這是返回正確的參數,和我改變=沒有空間,但不起作用 –

+0

看到我的新的第三個建議 – marmor