繁体   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