为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用okhttp3制作登录页面

如何使用okhttp3制作登录页面

慕标5832272 2022-11-30 13:18:54
在 Android Studio 中,我在我的项目中设置了一个带有 OkHttp 的登录页面,但我在 OkHttp 连接中遇到了一个小问题。我不知道如何创建 POST 正文。下面是我的代码:    btn_login.setOnClickListener(new View.OnClickListener() {                                     @Override                                     public void onClick(View v) {                                         if (isNetworkAvailable()) {                                             userLogin();                                             final String email = inemail.getText().toString().trim();                                             final String password = inpass.getText().toString().trim();                                             okHttpClient = new OkHttpClient();                                             MediaType mediaType = MediaType.parse("application/json");                                             RequestBody body = RequestBody.create(mediaType, "{\"action\":\"patientappointmentlist\",\"tokenid\":\"j9394je902jew92jeY9j\",\"user\":"+email+",\"pass\":"+password+"}");当我将 RequestBody 更改为:RequestBody body = RequestBody.create(mediaType, "{\"action\":\"patientappointmentlist\",\"tokenid\":\"j9394je902jew92jeY9j\",\"user\":"apptester",\"pass\":"123456"}");它工作正常。虽然我在应用程序中正确输入了电子邮件和密码。请帮我。
查看完整描述

1 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

下面是一个使用 POST 方法的 OKHttp 连接示例。


此示例代码login_username.getText().toString())将获取您在用户名 edittext 中输入的文本。


当用户输入用户名和密码正确时,它会重定向到 HomeActivity.class


代码:


private void submitForm() throws IOException {

    try

    {

        urlAPI = new URL("http://testsiteprog.com./accounts/signin.php");

    }

    catch (MalformedURLException e)

    {

        e.printStackTrace();

    }


    OkHttpClient client = new OkHttpClient();


    //INPUT *GETTEXT

    JSONObject jsonObject = new JSONObject();

    try {

        jsonObject.put("username", login_username.getText().toString());

        jsonObject.put("password", login_password.getText().toString());

        jsonObject.put("ipaddress", get_publicIPaddress);

    }

    catch (JSONException e) {

        e.printStackTrace();

    }


    MediaType JSON =MediaType.parse("application/json; charset=utf-8");


    RequestBody requestBody =  RequestBody.create(JSON, jsonObject.toString());

    Log.i("LOG_INTENT", login_username.getText().toString() + login_password.getText().toString() + get_publicIPaddress);


    Request request = new Request.Builder()

        .url(urlAPI)

        .post(requestBody)

        .build();



    client.newCall(request).enqueue(new Callback() {

        @Override

        public void onFailure(Call call, IOException e) {

            String mMessage = e.getMessage();

            Log.w("failure Response", mMessage);

        }


        @Override

        public void onResponse(Call call, Response response) throws IOException {

            String mMessage = response.body().string();


            try {

                JSONObject object = new JSONObject(mMessage);

                responseCode = object.getString("code");

                responseMsg = object.getString("message");

                responseToken = object.getString("token");


                if(response.code() == 200) {

                    Intent intentHome = new Intent(LoginActivity.this, HomeActivity.class);

                    intentHome.putExtra("TOKEN", responseToken);

                    Log.i("TAG", "Login Activity" + responseToken);

                    startActivity(intentHome);


                    Log.i("INTENT", "NAKUKUHA BA AT NATAPOS?");

                }

                else if(response.code() == 400){

                    runOnUiThread(new Runnable() {

                        public void run() {

                            Toast.makeText(LoginActivity.this, responseMsg, Toast.LENGTH_SHORT).show();

                        }

                    });

                }

            }

            catch (JSONException e) {

                e.printStackTrace();

            }

            Log.i("RESPONSE",  response + mMessage + "code" + responseCode + responseToken );

        }

    });


    Log.i("GET", "NAKUKUHA BA AT NATAPOS?");

}

希望它能帮助解决您的问题。


查看完整回答
反对 回复 2022-11-30
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信