FFImageLoading:如何添加身份验证?

2024-01-11

我正在尝试使用FF图像加载 https://github.com/luberda-molinet/FFImageLoading/wiki在我的 Xamarin.iOS 和 Xamarin.Android 应用程序中从 url 加载图像。所有网址都需要身份验证..

我也在用modernhttpclient对于所有其他休息呼叫。为了modernhttpclient这就是我添加身份验证的方式

var cookieHandler = new NativeCookieHandler ();
var messageHandler = new NativeMessageHandler (false, false, cookieHandler);
cookieHandler.SetCookies (RestApiPaths.cookies);
using (var client = new HttpClient (messageHandler)) {
client.DefaultRequestHeaders.TryAddWithoutValidation ("User-Agent", GetUserAgent (platform));
var r = await client.GetAsync (new Uri (url));

而且效果很好。我对 FFImageLoading 做了同样的事情,

var cookieHandler = new NativeCookieHandler ();
var messageHandler = new NativeMessageHandler (false, false, cookieHandler);
cookieHandler.SetCookies (RestApiPaths.cookies);
var client = new HttpClient (messageHandler);
client.DefaultRequestHeaders.TryAddWithoutValidation ("User-Agent", RestApiPaths.GetUserAgent (Constants.__IOS__));

ImageService.Instance.Initialize (new Configuration {
    HttpClient = client
});

ImageService.Instance.LoadUrl (url).Into (ArticleImageView);

但不幸的是,它不起作用。没有加载图像。我知道这是身份验证的问题。我尝试使用另一个不需要身份验证及其工作的网址。有人可以告诉我应该做什么才能让它工作吗?

EDIT:

我尝试过这个认证支持 https://github.com/luberda-molinet/FFImageLoading/wiki/Authentication-Support

public class AuthenticatedHttpImageClientHandler : HttpClientHandler
{

    public AuthenticatedHttpImageClientHandler()
    {

    }

    protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        request.Headers.Add("Cookie", RestApiPaths.cookie);
        request.Headers.Add("User-Agent", RestApiPaths.GetUserAgent(Constants.__IOS__));
        return await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
    }
}

then:

ImageService.Instance.Initialize (new Configuration {
    HttpClient = new HttpClient(new AuthenticatedHttpImageClientHandler())
});

但还是不行..


我是这样做的

ImageService.Instance.Initialize(new Configuration {
    HttpClient = NetworkHelper.GetAuthenticatedHttpClient(Constants.__IOS__)
});
ImageService.Instance.LoadUrl(url).Into(imageView);

在我的例子中,NetworkHelper.GetAuthenticatedHttpClient 返回带有所需标头和身份验证令牌的 HttpClient。

public static HttpClient GetAuthenticatedHttpClient(int platform)
{
     HttpClient client = new HttpClient(messageHandler);
     client.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", GetUserAgent(platform));
     client.DefaultRequestHeaders.TryAddWithoutValidation("X-Time-Zone", timezone);
     client.DefaultRequestHeaders.TryAddWithoutValidation("appVersion", CommonHelper.AppVersion);
     client.DefaultRequestHeaders.TryAddWithoutValidation("X-Auth", GetAuthToken());
     return client;
}

你只需要做Instance.Initialize只有一次

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FFImageLoading:如何添加身份验证? 的相关文章

  • Mono Android 中的搜索对话框

    我正在尝试根据此处的文档在 Mono Android 应用程序中实现搜索对话框 http developer android com guide topics search search dialog html http developer
  • 使用 Xamarin Forms 显示图像

    Solved 答案是更新所有 nuget 软件包并针对较新版本的 Android 现在图像按预期加载 我对此并不满意 因为我完全使用了 Xamarin 提供的代码 并且针对较新的版本已弃用了代码所依赖的一些项目 初始版本是 Xamarin
  • 无法使用 Xamarin 和 WCF 访问 Web 服务

    我想使用 Xamarin 和 WCF 来使用公共 Web 服务 对于这个演示 我将使用Xamarin iOS 这是我试图使用的 公共 网络服务 http www webservicex net globalweather asmx WSDL
  • iOS App Store ExecutionEngineException 尝试 JIT 编译

    我有一个非常尴尬的问题 我已经为 iOS 构建了我的应用程序 并在所有模拟器上对其进行了测试 并且运行良好 我已将其安装在设备 iPhone 6 plus 上 效果也很好 然而 当我将其提交到应用商店时 反馈是它在所有设备上启动时都会崩溃
  • 如何从基类捕获点击项目(位于模板中)的事件?

    我有一个基础网格
  • 将 React Native 集成到 Xamarin 项目中

    我的任务是看看是否可以将 React Native 集成到 Xamarin Forms 项目中 我认为我已经非常接近实现这一目标 但我不能肯定地说 我知道这是一个有点奇怪 倒退的解决方案 但无论如何我想尝试一下 看看我是否可以打败它 Int
  • MonoDroid 和 MonoTouch 中的可移植类库程序集引用问题

    当我尝试构建引用 PCL 的 MonoDroid 或 MonoTouch 项目时 我的项目遇到问题 其中有适用于 Net 4 5 Windows Phone 8 WinRT MonoTouch 和 MonoDroid 的 PCL 如下所示
  • Android 缩放和密度问题

    Update 一些研究表明 华硕 Transformer TF700T 高端 的像素密度应约为 224 因此 android 报告的 159 值要么是错误的 要么已被某种方式修改 system 中的 lcd 密度键 build prop 由
  • Draggable Boxview 不更新 Xamarin

    我的第一个问题是框视图生成在左上角 而不是我指定的设计网格第 10 行和网格第 3 列 第二个问题在于可拖动视图 在代码本地可拖动视图的第一部分中 它正确地调用了触摸事件 但也许它没有在GUI中更新
  • 如何在 iOS 6 中强制 UIViewController 为纵向

    As the ShouldAutorotateToInterfaceOrientation在 iOS 6 中已弃用 我用它来强制特定视图仅肖像 在 iOS 6 中执行此操作的正确方法是什么 这仅适用于我的应用程序的一个区域 所有其他视图都可
  • Xamarin Forms Binding - 访问父属性

    我无法访问页面的 ViewModel 属性以便将其绑定到 IsVisible 属性 如果我不设置 BindingContext 我只能绑定它 有没有办法可以在设置 BindingContext 的同时访问页面的 viewmodel root
  • 使用数据绑定,如何将包含表情符号的文本绑定到标签并使其正确显示?

    我正在编写一个应用程序来连接 WordPress BuddyPress API 该应用程序将允许用户通过 API 相互发送消息 当这些消息包含表情符号时 我很难正确显示它们 以下是 API 返回的消息文本的简短示例 Hi x1f642 ho
  • Xamarin MasterDetailPage 看起来很难看

    I m trying to create a MasterDetailPage and I am not quite sure if I am doing that right but the drawer master just look
  • Visual Studio Community 缺少 iOS 11.2.1 的开发人员工具,无法调试

    我正在尝试在调试配置文件下构建和运行 所以我的 Xcode 是最新的9 2 9C40b 检查了应用商店和开发者门户 没有更新 Visual Studio 社区也已更新至7 3 2 build 12 stable channel 仅使用 Xc
  • 在 Xamarin 中读取 iOS 的相机权限

    我有一个用 Xamarin 开发的 iOS 应用程序 当应用程序没有访问麦克风的权限时 如果用户尝试从应用程序访问麦克风 我会使用以下命令检查设置AVAudioSession SharedInstance RequestRecordPerm
  • 打开位置设置页面或提示用户启用位置

    我一直在绞尽脑汁 徒劳地谷歌搜索 我正在尝试找到一种方法来提示用户通过直接进入设置页面或仅点击屏幕上的 是 来切换位置 我见过的所有代码似乎都不起作用 有人有有效的方法吗 一个详细的例子将不胜感激 谢谢 我对 Xamarin 开发非常陌生
  • 如何在 C# 中从这个分层父子结构中查找任何项目

    如何从列表中查找任何项目 因为它是动态的 它可能位于列表的任何位置的父项或子项中 并且当子项计数为0时需要停止查找 下面是列表的模型和分层父子结构示例 例子 父级 gt 子级 gt 子级 gt 子级或父级 gt 子级 gt 子级 gt 子级
  • 将字节数组保存为 Android 设备文件夹中的 jpg 文件

    我正在尝试将图像保存在 Android 设备的文件夹中 我使用的代码如下 var newFolder AndroidEnvironment GetExternalStoragePublicDirectory AndroidEnvironme
  • 无法在调试 Xamarin Android 和 iOS 的设备上部署

    我使用的是最新的 Visual Studio 15 6 3 无法再通过调试在设备上部署 如果我在没有调试的情况下运行它就会部署 我该如何修复它 真烦人 iOS Android System Net Mqtt Sdk MqttClientIm
  • 如何将屏幕截图转换为二进制?

    我正在开发一个 Xamarin Forms 项目 在该项目中我想将我的屏幕截图 PNG 转换为二进制并将其上传到服务器 现在服务器部分需要一个API 我将由已经完成它的人交给我 我只需要实现它 在我完成这个任务之后 到目前为止 我已经成功地

随机推荐

  • App Store Connect 不显示所有销售 - 为什么?

    为了能够更好地估计我们应用程序的收入 我们实现了一个数据库功能 该功能可靠地 我们在沙盒模式下测试了它 为订阅者在订阅后增加了一个订阅计数器 仅当应用内购买成功后 即当我们收到 StoreKit 的反馈以启用高级功能时 才会触发此功能 现在
  • 修复使用 uploadify 时 django csrf 错误

    我在 django 管理中使用 uploadify 但收到 403 错误 当我使用 csrf exempt错误消失了 但是这是非常危险的 有没有更好的方法通过使用 csrf exempt 装饰器来解决这个问题而不损害管理页面 提前致谢 听起
  • 是否可以使用“firebase-admin”包调用 firebase 函数?

    我有带有基于服务帐户的访问权限的节点应用程序 所以我使用firebase admin 正如我之前所看到的 firebase admin大部分重复firebase包 除了身份验证部分 签名和其他一些部分 但现在我想调用函数 但找不到任何等效项
  • Spring 服务层的 JUnit 测试用例

    我正在尝试配置 JUnit 并为 Spring 3 2 MVC 应用程序的服务层编写测试用例 我找不到太多关于如何从头开始配置 JUnit 并使其适用于 Spring 服务层的信息 这是我的问题 我真的不知道要使用什么版本的 junit 所
  • 如何在构建时在maven中设置项目版本?

    我正在尝试在我们的项目中实现语义版本控制 我测试了 Maven semver 插件 但这对我没有帮助 所以请不要问我为什么 我最终使用了 Maven Groovy 它的工作原理就像一个魅力 但是 当我安装或部署 Maven 项目时 存储库中
  • PHP/GD - 透明背景

    我想结合 GD 在 PHP 中执行以下操作 不幸的是 ImageMagick 不是一个选项 但这似乎是一个常见问题 因此has作为一个解决方案 我似乎找不到它 我想创建一个具有透明背景的PNG 然后我想在上面画一个矩形 在上面复制一个图像
  • 了解 的上限和下限 ?在 Java 泛型中

    我真的很难理解通配符参数 对此我有几个问题 作为类型参数只能在方法中使用 例如 printAll MyList
  • 如何递归读取所有记录并按级别深度SQL显示

    有没有办法在类似的表中递归读取记录并按深度级别排序 table id int parent int value string 1 1 some 2 1 some2 3 2 some3 4 2 some4 5 3 some5 6 4 some
  • C/C++:头文件中的静态函数,是什么意思?

    我知道在源文件中声明静态函数意味着什么 我正在阅读一些代码 发现头文件中的静态函数可以在其他文件中调用 函数是在头文件中定义的吗 这样实际的代码就直接在函数中给出 如下所示 static int addTwo int x return x
  • 如何向带状图添加多个标记?

    我想知道如何在同一个带状图中获得多个标记 tips sns load dataset tips coldict Sun red Thur blue Sat yellow Fri green markdict Sun x Thur o Sat
  • Android的Activity.runOnUiThread不是静态的,那么我该如何使用它呢?

    例如 如果我有一个线程正在执行昂贵的操作 并且我想从该线程在 Main 活动 类中触发 runOnUiThread 显然我不应该创建我的活动类 主要 的实例 所以如果我尝试 Main runOnUiThread mRunnable 从我的线
  • ActiveRecord 使用 JSON 而不是 YAML 进行序列化

    我有一个使用序列化列的模型 class Form lt ActiveRecord Base serialize options Hash end 有没有办法让序列化使用 JSON 而不是 YAML 在 Rails 3 1 中你可以 clas
  • 每次基于 Selenium 的自动化测试后我应该退出浏览器吗?

    我试图使我的 selenium 测试尽可能原子且相互独立 因此我决定退出浏览器并在每次测试运行后创建一个新的 Webdriver 实例 这种方法对我来说更有意义 并且通过讨论这个问题的多个线程得到了强化 e G 这是对相关问题的回答 htt
  • 没有entityClass,并且由于entityClassSet中有多个,所以无法自动推导

    我正在尝试实现具有多个实体类的解决方案 但它失败并显示以下错误消息 没有配置entityClass null 并且因为有多个 EntityClassSet 类 com myspace wla JobA 类 com myspace wla J
  • 如何将我的 csv 文件转换为这个 scikit learn 数据集

    抱歉 如果我在这里没有使用正确的术语 我有一个包含我自己数据的 csv 文件 我首先需要将其转换为另一个format http scikit learn org stable modules generated sklearn datase
  • 如何在 LinearLayoutManager - RecyclerView 中重叠项目(如堆叠卡片)

    是否可以重叠 RecyclerView 中的项目 我正在尝试使用 LinearLayoutManager 我的要求与 LinearLayoutManager 中的相同 我只需要从上到下重叠内部的项目 如堆叠卡片 我见过一些变体 https
  • 了解 Spring 上下文初始化顺序

    我有一组复杂的 bean 以及它们之间的依赖关系 所有豆子都是 Service Repository or Controller带注释 我使用 PostConstruct注解 虽然存在一些循环依赖 但系统仍然由 Spring 正确初始化 然
  • Laravel 多个工人运行两次工作

    我使用 Laravel 5 6 将作业分派到队列 然后使用主管激活该队列上的 8 个工作线程 我原以为 Laravel 会知道不要运行同一个工作两次 但我惊讶地发现它确实如此 同样的工作由不止一名工人负责 因此奇怪的事情开始发生 问题是 一
  • 是否可以从托管 C++/CLI 项目正常运行非托管 C++?

    我正在将一个纯非托管 VC 9 项目包装在 C CLI 中 以便从 NET 应用程序中简单地使用它 我知道怎么写wrappers https stackoverflow com questions 15505992 can you use
  • FFImageLoading:如何添加身份验证?

    我正在尝试使用FF图像加载 https github com luberda molinet FFImageLoading wiki在我的 Xamarin iOS 和 Xamarin Android 应用程序中从 url 加载图像 所有网址