簡體   English   中英

我如何使用 Android 中的 retrofit 從 API 接收 HTML 頁面作為響應?

[英]How do i receive HTML page as response from API using retrofit in Android?

API 正在發送一個 HTML 頁面作為響應。 發布圖片

目前我正在接收 ResponseBody

public interface DashBoardHtmlJsonAPI {
    @FormUrlEncoded
    @POST("/MobileDashbord")
    Call<ResponseBody> getHtml(@Field("UserName") String username, @Field("Password") String password);
}

我想將 responseBody 轉換為 String 並將 html 加載到 webview。

html  = response.body().string();

上述代碼成功響應后返回一個空字符串

我無法將 html 頁面檢索為字符串。

Retrofit retrofit = new Retrofit.Builder().baseUrl(Constants.BASE_URL).addConverterFactory(ScalarsConverterFactory.create()).build();
        DashBoardHtmlJsonAPI dashBoardHtmlJsonAPI = retrofit.create(DashBoardHtmlJsonAPI.class);
        Call<ResponseBody> call = dashBoardHtmlJsonAPI.getHtml(userName,password);
        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                if (response.isSuccessful()){
                    String html="";
                    try {
                      html  = response.body().string();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    loadWebView(html);
                    Log.i("WEBVIEW",response.toString());
                    Log.i("WEBVIEW",html);


                }
                else {
                    Log.i("WEBVIEW",response.body().toString());

                }
            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                Log.i("WEBVIEW",t.getLocalizedMessage());
            }
        });

有誰能夠幫我?

您需要從正文中檢索內容

try {
   html  = response.body().content();
} catch (IOException e) {
   e.printStackTrace();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM