2017-07-10 10 views
0
package demo.com.mysqldbdemo; 

import android.content.Context; 
import android.os.AsyncTask; 
import android.widget.Toast; 

import java.io.BufferedWriter; 
import java.io.IOException; 
import java.io.InputStream; 
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; 

/** 
* Created by Ahmadzai on 7/10/2017. 
*/ 

public class BackgroundTask extends AsyncTask<String, Void, String> { 

    Context ctx; 
    BackgroundTask(Context ctx) 
    { 
     this.ctx = ctx; 
    } 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
    } 

    @Override 
    protected String doInBackground(String... params) { 
     String reg_url = "http://192.168.8.100:8081/webapp/register.php"; 
     String login_url = "http://localhost/webapp/login.php"; 
     String method = params[0]; 
     if (method.equals("register")) 
     { 
      String name = params[1]; 
      String user_name = params[2]; 
      String user_pass = params[3]; 

      try { 
       URL url = new URL(reg_url); 
       HttpsURLConnection httpsURLConnection = (HttpsURLConnection) url.openConnection(); 
       httpsURLConnection.setRequestMethod("POST"); 
       httpsURLConnection.setDoOutput(true); 
       OutputStream OS = httpsURLConnection.getOutputStream(); 
       BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(OS,"UTF-8")); 
       String data = URLEncoder.encode("user","UTF-8") + "=" +URLEncoder.encode(name,"UTF-8")+"&"+ 
         URLEncoder.encode("user_name","UTF-8") + "=" +URLEncoder.encode(user_name,"UTF-8")+"&"+ 
         URLEncoder.encode("user_pass","UTF-8") + "=" +URLEncoder.encode(user_pass,"UTF-8"); 
       bufferedWriter.write(data); 
       bufferedWriter.flush(); 
       bufferedWriter.close(); 
       OS.close(); 

       InputStream IS = httpsURLConnection.getInputStream(); 
       IS.close(); 
       return "Registration succeed ...."; 

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

    @Override 
    protected void onProgressUpdate(Void... values) { 
     super.onProgressUpdate(values); 
    } 

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

このコードにはエラーはありませんが、インターフェイスの登録ボタンを押したときにアプリケーションが実行を停止するため、データをmysqlテーブルに挿入します。 「HttpsURLConnection httpsURLConnection =(HttpsURLConnection)url.openConnection();」まで実行するアプリケーションをデバッグします。その後、デバッグを停止します。 誰でもこの点で私を助けることができますか?私はstackoverflowの回答を使用していますが、これは私の最初の試みは、ご不便をおかけして申し訳ありません。Android - POSTメソッドでHTTPパラメータを簡単に送信する

+0

あなたのlogcatは何を言いますか? –

+0

Retrofit – DeKaNszn

+1

についてお読みください。あなたのURLは「HTTPS」経由の接続を表していないので、クラスキャストの例外に賭けています。 –

答えて

1

使い始めるretrofitこれはアンドロイドに最適です

+0

ツールをお勧めする場合は、そのツールの使用方法手元の問題を解決する。 –

+0

ありがとうございます、それは解決されました。 – Tariq

関連する問題