android端与servlet端简单交互

客户端代码:

public class RetrofitDemoActivity extends BaseActivity {

    private String mUserName;
    private String mPassWord;
    private EditText mEt_userName;
    private EditText mEt_passWord;
    final static Gson gson = new GsonBuilder()
            .setLenient()
            .create();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_net_demo);
        initView();
    }

    private void initView() {
        mEt_userName = (EditText) findViewById(R.id.user_name);
        mEt_passWord = (EditText) findViewById(R.id.pass_word);

    }

    public static final String BASE_URL1 = "http://192.168.0.13:8080/RetrofitDemo/";

    public void getData(View view) throws IOException {
        mUserName = mEt_userName.getText().toString();
        mPassWord = mEt_passWord.getText().toString();
        OkHttpClient client = new OkHttpClient.Builder()
                .addInterceptor(new OkHttpInterceptor())
                .build();
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL1)
                .addConverterFactory(GsonConverterFactory.create(gson))
                .client(client)
                .build();

        MyEclipseService service = retrofit.create(MyEclipseService.class);
        Call<NetData> dataFromMyEclipse = service.getDataFromMyEclipse(mUserName, mPassWord);
        Log.d("RetrofitDemoActivity", dataFromMyEclipse.request().url().encodedPath());
        dataFromMyEclipse.enqueue(new Callback<NetData>() {
            @Override
            public void onResponse(Call<NetData> call, Response<NetData> response) {
                NetData body = response.body();
                Log.d("RetrofitDemoActivity", "body :" + body.toString());
            }

            @Override
            public void onFailure(Call<NetData> call, Throwable t) {
                Log.d("RetrofitDemoActivity", t.toString());
            }
        });
    }

    private interface MyEclipseService {
        @FormUrlEncoded
        @POST("servlet/RetrofitServlet")
        Call<NetData> getDataFromMyEclipse(@Field("username") String name, @Field("password") String password);
    }
}

服务端代码:

public class RetrofitServlet extends HttpServlet {


    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        //登陆成功标志
        String LOGIN_FLAG="";
        //获得客户端提交用户名密码
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //调用UserDAO中isLogin方法判断数据中用户名密码是否正确
        System.out.println("username :"+username + "password :" + password);
        //setContentType一定要栽getWriter前,否则不会影响输出流编码格式
        response.setContentType("application/json;charset=UTF-8");
        PrintWriter writer = response.getWriter();
        boolean flag = username.equals("abcdef")&&password.equals("123456");
        try {
            if (flag) {
                //登录成功
                LOGIN_FLAG="success";
                System.out.println(LOGIN_FLAG);
                String s = "{id:\"2222\"}";
                writer.write(s);
                writer.flush();
                writer.close(); 
            }else{
                 //登录失败  
                LOGIN_FLAG="failure";
                System.out.println(LOGIN_FLAG);
                String s = "{id:"+"2222"+"}";
                writer.write(s);
                writer.flush();
                writer.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

请求并解析数据

最后不得不吐槽一下,坑真多- -。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值