安卓学习----使用okHttp(POST方式)---登录
工具类
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(); } }