原创:
http://blog.csdn.net/iwanghang
3.可以了~我们下一篇博文,连接MySQL数据库继续实现登录功能。
原创: http://blog.csdn.net/iwanghang
1.服务端,我们先让服务端返回一个假结果就可以。
关键代码:
response.setCharacterEncoding("UTF-8"); response.setContentType("application/json; charset=utf-8"); String jsonStr = "{\"username\":\"王航\"" + ",\"password\":\"987654\"" + ",\"status\":\"1\"}"; PrintWriter out = null; try { out = response.getWriter(); out.write(jsonStr); } catch (IOException e) { e.printStackTrace(); } finally { if (out != null) { out.close(); } }
完整接口地址:
http://192.168.1.129:8080/servletDemo/test01
返回的Json数据:
{"username":"王航","password":"987654","status":"1"}
完整接口文件:
package com.iwanghang.servletDemo; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class Test01 implements Servlet{ public Test01() { System.out.println("HelloServlet..."); } @Override public void destroy() { System.out.println("destroy..."); } @Override public ServletConfig getServletConfig() { System.out.println("getServletConfig..."); return null; } @Override public String getServletInfo() { System.out.println("getServletInfo..."); return null; } @Override public void init(ServletConfig arg0) throws ServletException { System.out.println("init..."); } @Override public void service(ServletRequest arg0, ServletResponse response) throws ServletException, IOException { System.out.println("service..."); response.setCharacterEncoding("UTF-8"); response.setContentType("application/json; charset=utf-8"); String jsonStr = "{\"username\":\"王航\"" + ",\"password\":\"987654\"" + ",\"status\":\"1\"}"; PrintWriter out = null; try { out = response.getWriter(); out.write(jsonStr); } catch (IOException e) { e.printStackTrace(); } finally { if (out != null) { out.close(); } } } }
package com.iwanghang.demo1113; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.android.volley.AuthFailureError; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.StringRequest; import com.android.volley.toolbox.Volley; import org.json.JSONException; import org.json.JSONObject; import java.util.HashMap; import java.util.Map; import static com.iwanghang.demo1113.Constant.LOGINCHECK; public class MainActivity extends AppCompatActivity { private String TAG = "MainActivity"; // 创建请求队列 RequestQueue requestQueue = null; private EditText et_username; private EditText et_password; private Button bt_login; private String username; private String password; private String status; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); requestQueue = Volley.newRequestQueue(this); et_username = findViewById(R.id.et_username); et_password = findViewById(R.id.et_password); bt_login = findViewById(R.id.bt_login); initLogin(); // 登录 按钮点击事件监听 } /** * 登录 按钮点击事件监听 */ private void initLogin() { bt_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 获取输入账号密码 username = et_username.getText().toString(); password = et_password.getText().toString(); Log.v(TAG, " username = " + username); netLogin(); // 发送网络请求 } }); } /** * 发送网络请求 尝试登陆 */ private void netLogin() { // 请求地址 //String url = "hhttp://192.168.1.129:8080/servletDemo/test01"; StringRequest request = new StringRequest(Request.Method.POST, LOGINCHECK, new Response.Listener<String>() { @Override public void onResponse(String response) { Log.v(TAG,"response = " + response);// 返回结果 try { if (response.equals("no")){ Toast.makeText(MainActivity.this, "登录失败,请检查ID是否正确", Toast.LENGTH_SHORT).show(); }else { JSONObject object1 = new JSONObject(response); username = object1.getString("username"); // username password = object1.getString("password"); // password status = object1.getString("status"); // status Log.e("TAG", "username = " + username); Log.e("TAG", "password = " + password); Log.e("TAG", "status = " + status); Toast.makeText(MainActivity.this, "username = " + username + " password = " + password + " status = " + status, Toast.LENGTH_SHORT).show(); } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.v(TAG,"error = " + error); // 错误结果 Toast.makeText(getApplication(),"网络出问题",Toast.LENGTH_SHORT).show(); } }){ @Override protected Map<String, String> getParams() throws AuthFailureError { // 请求的内容 Map<String,String> params = new HashMap<>(); params.put("username",username); return params; } }; // 添加到请求队列 requestQueue.add(request); } }
看一下AndroidStudio的Logcat:
11-13 15:22:26.427 1134-1134/com.iwanghang.demo1113 V/MainActivity: response = {"username":"王航","password":"987654","status":"1"} 11-13 15:22:26.427 1134-1134/com.iwanghang.demo1113 E/TAG: username = 王航 11-13 15:22:26.427 1134-1134/com.iwanghang.demo1113 E/TAG: password = 987654 11-13 15:22:26.427 1134-1134/com.iwanghang.demo1113 E/TAG: status = 1
3.可以了~我们下一篇博文,连接MySQL数据库继续实现登录功能。
原创: http://blog.csdn.net/iwanghang