我想要将tomcat的注册信息请求到mysql表中,android studio发生了崩溃。我正在使用okhttp3作为请求方法。但我真的无法找到错误。你能看看它并给我一些建议吗? 我在一个活动中写了这个方法,这是对的。我想知道为什么这是错的然后我写在片段中。
public class RegisterFragment extends Fragment {
private static final String TAG = "RegisterFragment ";
private Button sendSMS, submit;
private EditText usernameEdit,phoneNumberEdit, identifyingCodeEdit, loginPasswordEdit, confirmingPasswordEdit;
private EditText idCardNumberEdit, deviceIdEdit, birthdayEdit, addressEdit, urgentNumberEdit;
private RadioButton maleRadioButton;
private RadioButton femaleRadioButton;
private EventHandler eventHandler;
private String username;
private String phoneNumber;
private String loginPassword;
private String confirmingPassword;
private String idCardNumber;
private String deviceId;
private String gender;
private String birthday;
private String address;
private String urgentNumber;
@Override
public void onCreate(Bundle savedInstanceState) {
MobSDK.init(getContext(), "****95ec99ff7","ba3e429bf5fa8b8d34412f****055ce5");
super.onCreate(savedInstanceState);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_register, container, false);
usernameEdit = (EditText) v.findViewById(R.id.username);
phoneNumberEdit = (EditText) v.findViewById(R.id.phone_number);
identifyingCodeEdit = (EditText) v.findViewById(R.id.identifing_code);
loginPasswordEdit = (EditText) v.findViewById(R.id.login_password);
confirmingPasswordEdit = (EditText) v.findViewById(R.id.confirming_password);
idCardNumberEdit = (EditText) v.findViewById(R.id.id_card_number);
deviceIdEdit = (EditText)v.findViewById(R.id.device_id);
birthdayEdit = (EditText) v.findViewById(R.id.birthday);
addressEdit = (EditText) v.findViewById(R.id.address);
urgentNumberEdit = (EditText) v.findViewById(R.id.urgent_number);
maleRadioButton = (RadioButton) v.findViewById(R.id.radio_button_male);
femaleRadioButton = (RadioButton) v.findViewById(R.id.radio_button_female);
sendSMS = (Button) v.findViewById(R.id.send_SMS);
sendSMS.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
phoneNumber = phoneNumberEdit.getText().toString().trim();
SMSSDK.getVerificationCode("86",phoneNumber);
}
});
submit = (Button) v.findViewById(R.id.submit);
submit.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
username = usernameEdit.getText().toString().trim();
loginPassword = loginPasswordEdit.getText().toString().trim();
confirmingPassword = confirmingPasswordEdit.getText().toString().trim();
idCardNumber = idCardNumberEdit.getText().toString().trim();
deviceId = deviceIdEdit.getText().toString().trim();
birthday = birthdayEdit.getText().toString().trim();
address = addressEdit.getText().toString().trim();
urgentNumber = urgentNumberEdit.getText().toString().trim();
if(maleRadioButton.isChecked()){
gender = "男";
}else if(femaleRadioButton.isChecked()){
gender = "女";
}
if(TextUtils.isEmpty(phoneNumber) || TextUtils.isEmpty(username)||TextUtils.isEmpty(loginPassword)
||TextUtils.isEmpty(confirmingPassword)||TextUtils.isEmpty(idCardNumber)||TextUtils.isEmpty(deviceId)
||TextUtils.isEmpty(birthday)||TextUtils.isEmpty(address)||TextUtils.isEmpty(urgentNumber)||TextUtils.isEmpty(gender)){
Toast.makeText(getActivity(), "填写的注册信息不能为空!",Toast.LENGTH_SHORT).show();
return;
}
String number = identifyingCodeEdit.getText().toString();
SMSSDK.submitVerificationCode("86",phoneNumber,number);
}
});
eventHandler = new EventHandler(){
@Override
public void afterEvent(int event, int result, Object data) {
Message msg = new Message();
msg.arg1 = event;
msg.arg2 = result;
msg.obj = data;
mHandler.sendMessage(msg);
}
};
SMSSDK.registerEventHandler(eventHandler);
return v;
}
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
int event = msg.arg1;
int result = msg.arg2;
Object data = msg.obj;
Log.e("event", "event=" + event);
if (result == SMSSDK.RESULT_COMPLETE){
//回调完成
if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
//提交验证码成功
Toast.makeText(getActivity(),"验证成功",Toast.LENGTH_SHORT).show();
doRegister();
}else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){
//获取验证码成功
Toast.makeText(getActivity(),"验证码已发送", Toast.LENGTH_SHORT).show();
}else if (event ==SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){
}
}else{
((Throwable)data).printStackTrace();
Throwable throwable = (Throwable) data;
try {
JSONObject obj = new JSONObject(throwable.getMessage());
final String des = obj.optString("detail");
if (!TextUtils.isEmpty(des)){
Toast.makeText(getActivity(),"提交错误信息",Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
};
//注册方法
private void doRegister(){
String path = null;
try {
path = "http://192.168.1.105:8080/Web/registerServlet"+"?username="
+ URLEncoder.encode(username, "utf-8")+"&phoneNumber="
+URLEncoder.encode(phoneNumber, "utf-8")+"&loginPassword="
+URLEncoder.encode(loginPassword, "utf-8")+"&confirmingPassword="
+URLEncoder.encode(confirmingPassword, "utf-8")+"&idCardNumber="
+URLEncoder.encode(idCardNumber, "utf-8")+"&deviceId="
+URLEncoder.encode(deviceId, "utf-8")+"&gender="
+URLEncoder.encode(gender, "utf-8")+"&birthday="
+URLEncoder.encode(birthday, "utf-8")+"&address="
+URLEncoder.encode(address, "utf-8")+"&urgentNumber="
+URLEncoder.encode(urgentNumber, "utf-8");
HttpUtil.sendOkHttpRequest(path,new okhttp3.Callback(){
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
Log.e(TAG,"error!");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
String responseData = response.body().string();
if(!TextUtils.isEmpty(responseData)){
Toast.makeText(getActivity(), responseData, Toast.LENGTH_LONG).show();
Intent selectIntnet = new Intent(getActivity(), SelectionActivity.class);
startActivity(selectIntnet);
}
}
});
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
@Override
public void onDestroy() {
super.onDestroy();
SMSSDK.unregisterEventHandler(eventHandler);
}