目的
将Java和HTML语言结合起来实现数据的下载
具体内容
先建一个HTML文件,可以下载Sublime Text软件或者新建一个文本文档
<!-- 做一个表单用于提交用户的数据-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>登录</title>
</head>
<body background="1564315747404.jpeg">
<!-- action 提交内容提交到服务器的哪个文件中
method 提交方式 get/post
-->
<form action="login.php" method="get">
<!-- 表单内容 -->
<br>
<br>
<center>
用户名:<input type="text" name="user_name">
<br>
<br>
密  码:<input type="password" name="user_pwd">
<br>
<br>
<input type="submit" value="提交">
</center>
</form>
</body>
</html>
再建一个PHP文件
<?php
header('Content-type: text/html; charset=GBk');
// 获取提交的用户名 get:$_GET post:$_POST
$name=$_POST["user_name"];
$password=$_POST["user_pwd"];
//查询数据库
//返回结果
echo "用户名:".$name."密码:".$password;
?>
保存并运行
在AndroidStudio里的操作:
1.使用get请求数据
public class MyClass {
public static void main(String[] args) throws IOException {
//使用代码访问服务器的数据
//URL
//1.创建URL
String path="http://127.0.0.1/login.php?"+"user_name=jackson&user_pwd=123";
URL url=new URL(path);
// 获取连接的对象
// URLConnection封装了socket
URLConnection connection=url.openConnection();
//设置请求方式
HttpURLConnection httpConnection=(HttpURLConnection)connection;
httpConnection.setRequestMethod("GET");
//接收服务器端的数据
InputStream is=connection.getInputStream();
byte[] buf=new byte[1024];
int len;
while ((len=is.read(buf))!=-1){
System.out.println(new String(buf,0,len));
}
}
}
2.使用post上传数据
public class MyClass {
public static void main(String[] args) throws IOException {
post();
}
//使用post上传数据
public static void post() throws IOException {
//1.创建URL
URL url=new URL("http://127.0.0.1/login.php");
//2.获取connection对象
// URLConnection
// HttpURLConnection 自己需要设定请求的内容
URLConnection connection=url.openConnection();
//3.设置请求方式为post
((HttpURLConnection) connection).setRequestMethod("POST");
//设置有输出流 需要上传
connection.setDoOutput(true);
//设置有输入流 需要下载
connection.setDoInput(true);
//4.准备上传的数据
String data="user_name=jackson"+"user_pwd=123";
//5.开始上传输出流对象
OutputStream os=connection.getOutputStream();
os.write(data.getBytes());
os.flush();
InputStream is=connection.getInputStream();
byte[] buf=new byte[1024];
int len;
while ((len=is.read(buf))!=-1){
System.out.println(new String(buf,0,len));
}
}
//下载数据 get 不带参数
public static void getImage() throws IOException {
//URL
URL url=new URL("http://127.0.0.1/1.jpg");
//获取与服务器连接的对象
URLConnection connection=url.openConnection();
//读取下载的内容
InputStream is=connection.getInputStream();
//创建文件保存的位置
FileOutputStream fos=new FileOutputStream("C:/Users/Administrator/AndroidStudioProjects/javaday1/src/main/java/day14/1.jpg");
byte[] buf=new byte[1024];
int len;
while ((len=is.read(buf))!=-1){
fos.write(buf,0,len);
}
}