第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果響應(yīng)與帖子類不同,如何從帖子請求中獲得響應(yīng)

如果響應(yīng)與帖子類不同,如何從帖子請求中獲得響應(yīng)

蠱毒傳說 2022-12-15 15:59:35
我正在使用改造通過 api 將登錄詳細(xì)信息傳遞到我的服務(wù)器。api 的發(fā)布請求只接受電子郵件和密碼,但響應(yīng)返回與 POJO 類包含的內(nèi)容不同的 Json 格式。我如何處理 api 響應(yīng)?我嘗試將響應(yīng)作為 JSONObject 返回以幫助從 api 獲取 Json,但它不起作用。API 返回包含用戶名和登錄令牌的成功 json。    Call<LoginPost> call = apiLink.loginUser(useremail, userpassword);    call.enqueue(new Callback<LoginPost>() {        @Override        public void onResponse(Call<LoginPost> call, Response<LoginPost> response) {            if(!response.isSuccessful()){                String code = Integer.toString(response.code());                Toast.makeText(LoginPage.this, code, Toast.LENGTH_LONG).show();            }            else {             LoginPost postResponse = response.body();             Log.e("viewResponse",                    postResponse.getSuccessResponse().toString());               return;            }        }        @Override        public void onFailure(Call<LoginPost> call, Throwable t) {            Log.e("error in createNewUser",  t.getMessage());        }    });帖子類:@SerializedName("email")String userEmail;@SerializedName("password")String userPassword;public JSONObject getSuccessResponse() {    return successResponse;}@SerializedName("success")JSONObject successResponse;public String getUserEmail() {    return userEmail;}public String getUserPassword() {    return userPassword;}
查看完整描述

1 回答

?
烙印99

TA貢獻(xiàn)1829條經(jīng)驗 獲得超13個贊

在進(jìn)行 Retrofit 調(diào)用時,不應(yīng)為 Request 使用 POJO 類,而應(yīng)使用與 Response 匹配的 POJO 類。因為這只是使用參數(shù)進(jìn)行調(diào)用,所以您可能甚至不需要 Request 對象,但擁有一個也沒有壞處。


您的代碼看起來像這樣:


Call<LoginResponse> call = apiLink.loginUser(useremail, userpassword);


call.enqueue(new Callback<LoginResponse>() {

    @Override

    public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {

        if(!response.isSuccessful()){

            String code = Integer.toString(response.code());

            Toast.makeText(LoginPage.this, code, Toast.LENGTH_LONG).show();

        }

        else {

         LoginResponse postResponse = response.body();


         Log.e("viewResponse", 

               postResponse.getSuccessResponse().toString());


           return;

        }

    }


    @Override

    public void onFailure(Call<LoginResponse> call, Throwable t) {

        Log.e("error in createNewUser",  t.getMessage());

    }

});

為了進(jìn)一步解釋發(fā)生了什么,當(dāng)你創(chuàng)建你的參數(shù)化調(diào)用時,你告訴 Retrofit 使用哪個對象來解析響應(yīng),(如果你想使用一個對象作為發(fā)布主體數(shù)據(jù),你需要以不同的方式聲明你的 API):


 @POST("auth/login")

 Call<LoginResponse> loginUser(@Body LoginPost body);


 Call<LoginResponse> call = apiLink.loginUser(LoginPost body);


查看完整回答
反對 回復(fù) 2022-12-15
  • 1 回答
  • 0 關(guān)注
  • 72 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號