安卓学习----使用okHttp(POST方式)---登录

时间:2022-05-30 07:50:16

工具类

package com.liunan.okhttpdemo3post.Utils;

import java.io.IOException;

import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.ResponseBody; /**
* Created by Administrator on 2016-03-27.
*/
public class HttpUtils { OkHttpClient client = new OkHttpClient();
public static final MediaType JSON
= MediaType.parse("application/json; charset=utf-8"); public String login(String url, String json) throws IOException {
//把请求的内容字符串转换为json
RequestBody body = RequestBody.create(JSON, json);
//RequestBody formBody = new FormEncodingBuilder() Request request = new Request.Builder()
.url(url)
.post(body)
.build(); Response response = client.newCall(request).execute(); String result = response.body().string(); return result; } public String bolwingJson(String username, String password) {
return "{'username':" + username + "," + "'password':" + password + "}";
// "{'username':" + username + ","+"'password':"+password+"}";
} }

Activity

package com.liunan.okhttpdemo3post;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast; import com.liunan.okhttpdemo3post.Utils.HttpUtils; import org.w3c.dom.Text; import java.io.IOException; public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private static final String TAG ="MainActivity" ;
//用户名
private EditText mEtUsername;
//密码
private EditText mEtPwd;
//登录按键
private Button mBtnLogin;
private TextView mTvResult; private String url ="http://192.168.1.102:8080/Login/login"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); initView();
initListener();
} /**
* 初始化组件
*/
private void initView() { mEtUsername = (EditText) findViewById(R.id.login_et_name);
mEtPwd = (EditText) findViewById(R.id.login_et_pwd); mBtnLogin = (Button) findViewById(R.id.login_btn_login); mTvResult = (TextView) findViewById(R.id.login_tv_result); } /**
* 设置监听器
*/
private void initListener() { mBtnLogin.setOnClickListener(this); } /*
单击事件监听
*/
@Override
public void onClick(View v) {
if(v==mBtnLogin){
login();
}
} /*
登录
*/
private void login() { final String username = mEtUsername.getText().toString().trim();
final String password = mEtPwd.getText().toString().trim(); if(TextUtils.isEmpty(username) || TextUtils.isEmpty(password)){ Toast.makeText(MainActivity.this, "用户名或者密码不能为空", Toast.LENGTH_SHORT).show();
return;
} new Thread(){
@Override
public void run() { HttpUtils httpUtils = new HttpUtils();
//转换为JSON
String user = httpUtils.bolwingJson(username, password); //String user ="{'username':" + username + ","+"'password':"+password+"}"; Log.d(TAG, "user:" + user); try {
final String result = httpUtils.login(url, user);
Log.d(TAG, "结果:" + result);
//更新UI,在UI线程中
runOnUiThread(new Runnable() {
@Override
public void run() {
if("SUCCESS".equals(result)){ mTvResult.setText("登录成功"); }else{
mTvResult.setText("登录失败");
}
}
});
} catch (IOException e) {
e.printStackTrace();
} }
}.start(); }
}