java 实现类接口消息传递_Java实现app接口和Socket消息传递(8)Android端测试接口

原创:

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();

}

}

}

}

2.Android端,我们直接来,但是传递username和password让我们后面用。

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() {

@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 getParams() throws AuthFailureError {

// 请求的内容

Map 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值