class ConnByHttp:
package com.example.myapplication;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import java.io.DataInputStream;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class ConnByHttp extends Thread {
String urlstr = "";
Handler mainHandler;
public ConnByHttp(String url,Handler handler){
this.urlstr = url;
mainHandler = handler;
}
@Override
public void run() {
HttpURLConnection connection = null;
//1、创建URL对象---创建客户端对象
try {
URL url = new URL(urlstr);
//2、创建连接对象
connection = (HttpURLConnection) url.openConnection();
//3、发起连接请求
connection.connect();
//4、获取响应数据
String content = null;
DataInputStream dis = new DataInputStream(connection.getInputStream());
content = dis.readUTF();
Log.i("web info:",content);
//把服务器响应数据发送给UI线程处理
Message msg = new Message();
msg.what = 1;
msg.obj = content;
mainHandler.sendMessage(msg);
} catch (MalformedURLException e) {
//创建客户端出错的异常
e.printStackTrace();
} catch (IOException e) {
//创建连接对象的异常
e.printStackTrace();
}
finally {
if(connection != null){
connection.disconnect();//关闭连接
}
}
}
}
RegisterActivity:
import android.content.DialogInterface
import android.content.Intent
import android.os.Bundle
import android.os.Handler
import android.os.Message
import android.util.Log
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
class RegisterActivity : AppCompatActivity(),View.OnClickListener {
//声名全局变量
var et_username:EditText ?=null;
var et_userpwd:EditText ?= null
var verify_keyword:EditText ?= null
var btn_register:Button ?= null
var handler: Handler? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_register)
handler = object : Handler() {
override fun handleMessage(msg: Message) {
when (msg.what) {
1 -> {
val sinfo = msg.obj.toString().trim()
if (sinfo == "T") {
toast(" 注册成功!")
} else if (sinfo == "F") {
toast(" 注册失败,请重试!")
}
}
}
}
}
"获取控件对象"
et_username = findViewById(R.id.et_username)
et_userpwd = findViewById(R.id.et_userpwd)
verify_keyword = findViewById(R.id.verify_keyword)
btn_register = findViewById(R.id.btn_register)
"对按钮设置监听"
btn_register?.setOnClickListener({
//启动联网子线程 连接http服务器
var url = "http://192.168.277.213:8080/Register/servlet/MyServelet";
val name = et_username?.text.toString().trim()
val pwd = et_userpwd?.text.toString().trim()
val verifykeyword = verify_keyword?.text.toString().trim()
url = url + "?name=" + name + "&pwd=" + pwd
Log.i("URL地址", url)
val connByHttp = ConnByHttp(url, handler)
connByHttp.start()
if (verifykeyword.equals(pwd)) {
val intent: Intent = Intent(this, FristActivity::class.java)
intent.putExtra("user_name", "用户名:" + et_username?.text.toString())
intent.putExtra("user_keyword", et_userpwd?.text.toString())
startActivity(intent)
} else {
AlertDialog.Builder(this).apply {
setTitle("警告对话框")
setMessage("输入密码不匹配")
setPositiveButton("确定") { dialog: DialogInterface?, which: Int ->
verify_keyword?.text = null
}
setNegativeButton("取消") { dialog: DialogInterface?, which: Int -> finish() }
show()
}
}
})
}
override fun onClick(p0: View?) {
"对点击事件进行响应逻辑判断处理"
when(p0?.id){
}
}
fun toast(str: String?) {
Toast.makeText(this, str, Toast.LENGTH_SHORT).show()
}
}
报错:
上网查说是访问网络权限的问题,但是我加了的啊,地址也检查了的没错,还是解决不了,有大佬可以帮忙看一下ma??
你发起请求是这样发起的?你后端都没学好啊。