比较难理解的是readSteam
点击按钮提交账户和密码
这里没有进行验证 直接按照正确的格式写的所以bug很少
public class MainActivity extends AppCompatActivity {
private Button button = null;
private EditText name, pwd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
name = (EditText) findViewById(R.id.name);
pwd = (EditText) findViewById(R.id.pwd);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
新开一个线程执行sendTomessage 然后star
new Thread() {
@Override
public void run() {
try {
SendToMessage();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
});
}
发送到服务器所用的基本方法,封装
public void SendToMessage () throws IOException {
得到服务器的URL以及 服务器所设置的基本格式
需要注意的是地址后面的参数第一个用? 隔开,以后所要传的参数用& 符号隔开,html貌似也是
String loginurl = "http://地址:8081/wulian1/servlet/MLogin?txt_name=" + name + "&txt_password=" + pwd;
URL url = new URL(loginurl);
建立连接
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
请求方式 get /post
httpURLConnection.setRequestMethod("GET");
响应码规定成功的话是200
int code = httpURLConnection.getResponseCode();
if (code==200)
{
InputStream inputStream = httpURLConnection.getInputStream();
//解析输入流得到一个result string类型
String result = readStread(inputStream);
Toast.makeText(this,"请输入用户名和密码",Toast.LENGTH_SHORT).show();
}
else
{
Log.e("dsddfds","-1")}
}
读取流的方法
默认格式不用解释
public static String readStread(InputStream is) {
StringBuffer sb = new StringBuffer("");
InputStream inputStream = is;
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
String temp;
while ((temp = br.readLine()) != null) {
sb.append(temp);
}
} catch (Exception e) {
e.printStackTrace();
return "";
} finally {
try {
br.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
}
如果要实现需要自己搭建个服务器建议用myeclipse 构建
页面布局太简单就不一一写了