问题标签 [refit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何在运行时使用 refit 设置用户代理?
如果我的用户代理是一个常量字符串,我可以使用[Headers("User-Agent: Awesome Octocat App")]
它来设置它。
但是,我的用户代理是由一种方法生成的(因为它包括设备和操作系统版本),这意味着我不能将它放在Headers
属性中。
另一个提到的方法如动态标题部分中所述,它不是最佳的,因为这对我来说是一个全局标题。我宁愿不手动将此标头添加到 60 多种 API 方法中。
我该怎么做呢?它是受支持的方案吗?使用自定义 HttpClient 是一种可接受的解决方案(如果可能)。
如果您知道任何可能符合我的目的的产品,我也对其他类似产品持开放态度。
c# - 使用 Refit 转换 url 参数
我正在使用Refit库来访问我的 API。这工作得很好,但我在我的 url 中使用枚举列表时遇到了一些问题。
IEnumerable contentTypes 当前转换为:
我想要它的格式:
我怎样才能做到这一点?
refit - Refit.ApiException 错误处理
如何获取 Refit.ApiException 的内容?
根据内部内容是什么,我想让用户知道如何进行。所以我看到抛出的异常有以下内容......
内容 "{\"error\":\"invalid_grant\",\"error_description\":\"用户名或密码不正确。\"}"
问题是,我如何访问它?
system.reactive - Akavache 无法在 Windows 8.1 通用应用程序中运行
我正在尝试在 Windows 通用应用程序中使用 Akavache(目前为 8.1,使用 ReactiveUI 6.5)。
为了确保它与我的架构无关,我做了一个空的解决方案,其中包含所有必要的包和要求(两个平台的 VC++),但我仍然遇到同样的问题。这对我来说是一个障碍,因为我希望我的所有查询都被缓存。
这是代码:
编辑经过一些调试,Windows Phone 8.1 Silverlight 可以工作,而不是 Jupiter。
那么缺少什么?
我正在使用 RXUI 6.5(最新)和 Windows Phone 8.1(Jupiter)(共享通用项目)
更新:Akavache.Sqlite3 导致问题。InMemoryCache 正在工作(删除 Akavache.Sqlite3 “修复”了问题),但不是 Sqlite3。此外,注册 BlobCache 的不同类型的缓存(从https://github.com/akavache/Akavache/blob/3c1431250ae94d25cf7ac9637528f4445b131317/Akavache.Sqlite3/Registrations.cs#L32复制粘贴)显然正在工作。所以我想注册类是'工作不正常,呼叫
new Akavache.Sqlite3.Registrations().Register(Locator.CurrentMutable);
不工作。
编辑: 我的临时解决方案是将其复制粘贴到我的应用程序中,然后在 BlobCache.ApplicationName 之后调用它。它有效,但从技术上讲,我不应该这样做。
谢谢你的帮助
c# - 我应该如何在 F# 项目中从 Refit 序列化 JSON?
我在 C# 项目中使用Refit来创建 API 客户端。我更喜欢用 F# 做所有事情,但Refit 还不完全支持 F#。
如果我在 C# 中创建我的User
模型,一切都很好,但我更希望能够表达哪些属性是可选的并适当地处理它们。
如果我添加FSharp.Core
并使用FSharpOption<string>
或类似方法,则尝试访问这些成员的断言会失败,NullReferenceException
但只有当 JSON 响应包含可选内容时才会失败。
如果我创建一个包含模型的单独 F# 项目,我在尝试反序列化时User
总是会得到一个。NullReferenceException
诚然,将任何模型保留为 C# 项目的一部分似乎更容易,但我不想牺牲知道哪些成员在 F# 方面是可选的。
解决此问题的最佳方法是什么?
windows-phone - Reactive Extensions、Akavache 和 Refit 对于 Windows Phone 的内部卡来说太多了
我想在我的应用程序和akavache/Akavache中使用paulcbetts/refit。
问题是根据我的逻辑,Windows Phone 不喜欢我执行以下操作:
我得到学期(从缓存中,然后获取),选择想要的学期(我将 H2014 用于测试),获取所选(许多)学期的时间表(从缓存中,然后获取,如下所示:
如果我使用 5 或更多的 TimeSpan.FromSeconds,它会做我想做的事,就好像我给了 Windows Phone 喘息的时间。否则(5岁以下),我得到的例外情况如下:
抛出异常:mscorlib.ni.dll StackTrace 中的“System.NotSupportedException”:
想要的行为:
- 获取缓存学期 -> 获取该学期的缓存计划,获取该学期的计划
- 获取学期 -> 获取该学期的缓存计划,获取该学期的计划
我试过了:
- 在没有 Refit 的情况下链接akavache/Akavache并且它可以工作。
- 在没有akavache/Akavache的情况下链接 GetSchedule 和 GetSemesters 的选择,它可以工作。
如果你们对工作有想法或我做错了什么,请告诉我!
c# - Android - Refit 意外抛出 UnknownHostException
我正在尝试使用 Xamarin 实现Refit,如果我之前在应用程序打开时未连接到 wifi,由于某种原因,它会引发 UnknownHostException (UHExc)。但是,这并不会始终如一地发生。
我对 Refit 对我的“Refit-interface”的实例化进行了两次调用:PostLoginAsync和GetDataAsync,如下所示(我一直在关注的指南在这里):
和
“改装界面”看起来有点像这样:
当我在没有连接到互联网的情况下打开应用程序并尝试发送PostLogin -request 时,我得到了预期的 UHExc。如果我然后打开 wifi 并重试(不关闭应用程序),我会再次获得 UHExc,只是这次几乎没有延迟,就像第一次一样(好像异常被缓存了??)。重新启动应用程序并在不断开 wifi 的情况下重试工作正常。
如果我对第二个请求( GetData )做同样的事情,我首先会得到一个 UHExc(显然),但是在重新连接 wifi 时它可以完美地工作。所以在我看来,POST请求缓存了异常或其他东西,并反复抛出它而不尝试连接。我该如何解决这个问题(无论实际问题是什么)?
ios - 在 Xamarin 上改装更新包
我刚刚使用 refit 包(2.3.0.-> 2.4.1)更新了 Xamarin 解决方案,现在构建抱怨:
我尝试恢复包版本,但出现同样的错误。我已经清理了解决方案,但仍然是同样的问题
c# - 在获取请求中传递 json 参数
我有:
但 Query 实例上的 Refit 调用 ToString 而不是使用序列化程序。有没有办法在不使用包装类的情况下实现这一点?