【发布时间】:2015-07-15 04:17:11
【问题描述】:
我正在尝试开发单个 login registeration 页面。在学习了几个教程之后,我终于找到了 API 22 的唯一教程,因为其他教程中使用的 http post 方法已被弃用。
我没有遵循整个教程,因为我一直在尝试将数据存储到数据库中。我的应用程序运行完美,但在注册过程中,它说我的应用程序“不幸停止了”。我是android新手,所以请礼貌。下面是我的signup.java 和backgroundtask.java 文件。
我在 000webhost 托管了一个免费的 sql 数据库
public class Signup extends Activity{
Button signupbutt;
EditText name , username , userpass , dob , email ;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.signup);
name = (EditText) findViewById(R.id.editname);
username = (EditText) findViewById(R.id.edituser);
userpass = (EditText) findViewById(R.id.editpass);
dob = (EditText) findViewById(R.id.editdob);
email = (EditText) findViewById(R.id.editemail);
signupbutt = (Button) findViewById(R.id.signupbuttonn);
signupbutt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
userreg(v);
}
});
}
public void userreg(View view)
{
String etname = name.getText().toString();
String etusername = username.getText().toString();
String etuserpass = userpass.getText().toString();
String etemail = email.getText().toString();
String etdob = dob.getText().toString();
String method = "Register";
Backgroundtask backgroundtask = new Backgroundtask(this);
backgroundtask.execute(method,etname,etusername,etuserpass,etemail,etdob);
}
}
这是我的 backgroundtask.java
public class Backgroundtask extends AsyncTask<String,Void,Void>{
Context ctx;
Backgroundtask(Context ctx)
{
this.ctx = ctx;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}
@Override
protected Void doInBackground(String... params) {
// TODO Auto-generated method stub
String reg_url = "http://8miles.freeiz.com/Register.php";
String method = params[0];
String name = params[1];
String username = params[2];
String password = params[3];
String email = params[4];
String dob = params[5];
try {
URL url = new URL(reg_url);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
OutputStream os = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(os,"UTF-8"));
String data = URLEncoder.encode("name","UTF-8") + "="+URLEncoder.encode("name","UTF-8")+"&"+
URLEncoder.encode("username","UTF-8") + "="+URLEncoder.encode("username","UTF-8")+"&"+
URLEncoder.encode("password","UTF-8") + "="+URLEncoder.encode("password","UTF-8")+"&"+
URLEncoder.encode("email","UTF-8") + "="+URLEncoder.encode("email","UTF-8")+"&"+
URLEncoder.encode("dob","UTF-8") + "="+URLEncoder.encode("dob","UTF-8");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onProgressUpdate(Void... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
}
}
【问题讨论】:
-
发布您的logCat?
-
你只是在创建输出流,然后声明数据——但你从来没有发送任何东西。哪一行触发了错误?请从 logcat 发布完整的堆栈跟踪。
-
会发布错误 logcat 吗??
-
@alfasin 谢谢你是对的,我没有发送数据,也没有这样做 bufferedWriter.write(data); bufferedWriter.flush(); bufferedWriter.close(); os.close();
-
@calvinfly 谢谢它的工作不是我也没有在 androidmanifest.xml 中请求互联网许可
标签: java android mysql database database-connection