使用Okhttp3进行联网请求,通过post方法把用户名和密码发送到服务进行校验,使用Gson解析返回的json数据验证正确后,返回一个token值,并token值,username,password通过SharedPreferences 保存到本地,
时间: 2024-09-25 15:14:33 浏览: 52
okhttp3进行http的post调用
在Android应用中使用OkHttp3进行网络请求并结合Gson处理JSON数据是一个常见的做法。以下是一般的步骤:
1. 引入依赖:首先,你需要在build.gradle文件中添加OkHttp和Gson的依赖:
```groovy
dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.x.x'
implementation 'com.google.code.gson:gson:2.x.x'
}
```
2. 创建OkHttpClient实例:创建一个OkHttpClient实例,设置超时时间和连接策略等配置。
3. 发送POST请求:
```java
RequestBody requestBody = FormBody.Builder()
.add("username", username)
.add("password", password)
.build();
Request request = new Request.Builder()
.url(url) // 服务器地址
.post(requestBody)
.header("Content-Type", "application/x-www-form-urlencoded")
.build();
Response response = client.newCall(request).execute();
```
记得替换`username`和`password`为实际的值,以及提供正确的URL。
4. 解析JSON响应:检查响应状态码是否成功,然后使用Gson将JSON转换为Java对象(如UserResponse),提取token值。
```java
String responseBody = response.body().string();
UserResponse userResponse = gson.fromJson(responseBody, UserResponse.class);
String token = userResponse.getToken();
```
5. 保存数据到SharedPreferences:将token、username和password保存到SharedPreferences,以便后续使用。
```java
SharedPreferences.Editor editor = getSharedPreferences("MyPreferences", MODE_PRIVATE).edit();
editor.putString("token", token);
editor.putString("username", username);
editor.putString("password", password); // 不建议存储明文密码,这里仅做示例
editor.apply();
```
6. 验证与错误处理:在上述操作后,通常还需要验证token的有效性和合法性,如果验证失败,则需要处理错误情况。
阅读全文