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パラメータを簡単に送信する
あなたのlogcatは何を言いますか? –
Retrofit – DeKaNszn
についてお読みください。あなたのURLは「HTTPS」経由の接続を表していないので、クラスキャストの例外に賭けています。 –