0

我正在尝试从安全域中获取照片。为了能够获取照片,我必须发送 HTTP 请求 - 或发送 Cookie - 来获取照片。

此代码不起作用,因为它发送正常请求。

CardThumbnail thumb = new CardThumbnail(getActivity());
String photoUrl = "https://secure.website/image.png";
thumb.setUrlResource(photoUrl);

我需要的是通过发送所需的 cookie 来获取这张安全照片。

在改造中,我曾经使用:

request.addHeader("Cookie", "SESSION=123; CSRF_TOKEN=" + token);

但是cardlib中的解决方案是什么?

4

1 回答 1

0

在这种情况下,内置函数不起作用。

但是你可以使用毕加索来获得它。例如这样的事情:

 MyThumbnail thumbnail = new MyThumbnail(mContext);
 //You need to set true to use an external library
 thumbnail.setExternalUsage(true);
 addCardThumbnail(thumbnail);


 public class MyThumbnail extends CardThumbnail {

    @Override
    public void setupInnerViewElements(ViewGroup parent, View viewImage) {

        //Here you have to set your image with an external library
        Picasso.Builder builder = new Picasso.Builder(getContext());
        builder.downloader(new OkHttpDownloader(ctx) {
             @Override
               protected HttpURLConnection openConnection(Uri uri) throws IOException {
                  HttpURLConnection connection = super.openConnection(uri);

                  //Put your header values here 
                  connection.setRequestProperty("X-HEADER", "VAL");

                  return connection;
             }
        });          
        Picasso sPicasso = builder.build();
        sPicasso.load("https://secure.website/image.png")
               .into((ImageView)viewImage);

    }

 }

如果您想使用 UniversalImageLoader 库,您可以以类似的方式集成该库,如下所述:

https://github.com/gabrielemariotti/cardslib/blob/master/doc/OTHERLIBRARIES.md#using-card-with-android-universal-image-loader

要将参数添加到 UIL 中的标头,您可以在 SO 上参考此问题:

有没有办法在使用通用图像加载器获取图像时指定额外的标题?

于 2015-01-06T09:06:40.863 回答