【问题标题】:Download pdf with retrofit 2.3 with webView from moodle - Android从moodle下载带有webView改造2.3的pdf - Android
【发布时间】:2018-05-20 07:07:54
【问题描述】:

我在webView 中加载url,网站是php 基础moodle。在webView 中有很多*.pdf,我需要下载那些pdfs 但我不能只需下载登录页面。 注意:

1- 我在webView 登录网站,然后我得到cookies,如下所示:

urlListClassWebView.setWebViewClient(new CustomBrowsers());             
urlListClassWebView.getSettings().setLoadsImagesAutomatically(true);         
urlListClassWebView.getSettings().setJavaScriptEnabled(true);
urlListClassWebView.clearHistory();
urlListClassWebView.setHorizontalScrollBarEnabled(false);       
urlListClassWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
urlListClassWebView.loadUrl(url);
urlListClassWebView.setWebViewClient(new WebViewClient() {

                    @Override
                    public void onPageStarted(WebView view, String url, Bitmap favicon) {
                        super.onPageStarted(view, url, favicon);
                        if (url.contains(".pdf")) {
                            String cookies = CookieManager.getInstance().getCookie(url);
                        }
                    }
                });

2- 然后我将cookies 发送到moodle,就像下面的改造 2.3:

@Headers({
        "Referer: http://xx.xx.xx/course/view.php?id=2484",
        "User-Agent: Mozilla/5.0 (Linux; Android 7.0; SM-G920F Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/62.0.3202.84 Mobile Safari/537.36",
        "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        "Upgrade-Insecure-Requests: 1"
})
@POST
@FormUrlEncoded
Call<ResponseBody> downloadFile(@Url String url,
                                @Field("_ga") String _ga,
                                @Field("MoodleSession") String MoodleSession,
                                @Field("MOODLEID1_") String MOODLEID1_,
                                @Field("loglevel") String loglevel);

【问题讨论】:

    标签: php android cookies retrofit2 moodle


    【解决方案1】:

    解决了我的问题:

    1-首先我得到cookies 我创建它们就像:aa=546345; bb=dfjds65;

    2-然后我通过如下改造:

    @POST
    Call<ResponseBody> downloadFile(@Url String url,
                                    @Header("Cookie") String sessionIdAndToken);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      相关资源
      最近更新 更多