安卓数据请求方式

Post请求

  • 安卓要通过向服务器请求需要加入权限
1
uses-permission android:name="android.permission.INTERNET"/>
  • 由于网络请求是一个耗时的操作,所以我们要开启一个子线程,在子线程中我们需要传递一个url地址,url地址通过字符串传递再封装到URL对象里面
1
URL httpUrl = new URL(url);
  • 创建一个HttpURLConnection对象
1
HttpURLConnection connection = (HttpURLConnection) httpUrl.openConnection();
  • 设置请求方式为post(也可以进行get方式)
1
connection.setRequestMethod("POST");
  • 设置是否可以进行流操作
1
connection.setDoOutput(true);
  • 设置请求时间不超过5s
1
connection.setReadTimeout(5000);
  • 开启一个输出流,并获得向链接的服务器进行输入数据操作
1
OutputStream out = connection.getOutputStream();
  • 向服务器提交数据的格式(post请求方式)
1
String content = "phone=" + user.getPhone() + "&username=" + user.getUsernanme() + "&password=" + user.getPassword();
  • 提交数据
1
out.write(content.getBytes());
  • 获取服务器返回的数据:

    • 开启读取服务器的带缓冲的读取器
1
BufferedReader reader = new BufferedReader(new InputStream(connect.getInputStream()));
  • 创建一个字符串缓冲器:
1
2
StringBuffer stringBuffer = new StringBuffer();
String str;
  • 当读取到的字符串不为空时就追加到缓冲器中
1
2
3
4
While((str = reader.readline()) != null) {
stringBuffer.append(str);
}
Log.d("info",stringBuffer.toString());

于是这样就可以跟服务器进行Post数据的交互了

Get请求

  • url的参数是
1
url = url + "?phone=" + user.getPhone() + "&password=" + user.getPassword();
  • 通过url的路由进行数据的请求,这是get的请求方式,但是如果进行大量的数据传输则不考虑使用get的方式

  • 网络请求是一个耗时的操作,所以我们要开启一个子线程,在子线程中我们需要传递一个url地址,url地址通过字符串传递再封装到URL对象里面

1
URL httpUrl = new URL(url);
  • 创建一个HttpURLConnection对象
1
HttpURLConnection connection = (HttpURLConnection) httpUrl.openConnection();
  • 设置请求的方式为get:
1
2
3
4
5
6
7
8
9
10
11
connection.setRequestMethod("GET");
connection.setReadTimeout(5000);

BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStr
eam)));
String str;
StringBuffer stringBuffer = new StringBuffer();
while((str = reader.readLine()) != null) {
stringBuffer.append(str);
}
Log.d("info",stringBuffer.toString());