问题标签 [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.

0 投票
2 回答
1235 浏览

ios - Azure Blob 授权标头

我正在尝试使用refit从 Xamarin iOS 应用程序上传到 azure blob 存储。这是我用于改装的接口配置:

sasTokenKey 参数如下所示:

这就是我使用 Refit 调用 azure blob 服务器的方式:

但是我收到以下错误:

如果我像这样直接调用它,SAS url 工作正常

所以基本上我只是想用 Refit 做同样的事情。知道如何让 Refit 与 Azure Blob 存储一起使用吗?

谢谢!

[更新] 我现在可以将字节上传到 azure blob 服务器,但字节数据似乎有问题,因为我无法查看图像。这是我用来转换为字节数组的代码。

[更新] 通过使用流而不是字节数组来修复它!

0 投票
0 回答
1250 浏览

c# - 并发 HttpClient 调用引发 500 内部服务器错误

我正在使用带有 1-2 个接口的Refit并为 Web API 请求生成我的客户端 RESTful 类。

在一个类中,我有 60 个属性,如下所示。

并初始化如下。

GetHttpClient(string) 为每个资源端点返回一个新的 HttpClient 实例。

在遥远的银河系的某个地方,我有一些存储库,它们将以下列方式对所有这些 API 进行并发调用,请注意,我使用Punchclock将调用限制为一次 5 个。

方法调用中的任务列表。

正如我所注意到的,上面将向随机表抛出 500 个内部服务器错误。将调用更改为串行异步效果很好!

当 500 内部服务器不一致时,有点不可能理解它,并且由于我的服务器可以一个一个地处理调用,我试图了解这是我正在使用的 API 的客户端问题还是我的服务器需要处理请求的特殊配置,一次 5 个是下降处理。

我正在使用 Web API 2 服务器。

我也在考虑是否可以通过我的设置重用具有不同端点配置的相同 HttpClient 实例。

任何想法都非常感谢。

0 投票
2 回答
322 浏览

c# - Json.Net 将集合序列化为命名属性

我正在使用由Refit和其他Paul Betts库管理的 API 调用创建一个 Xamarin 应用程序,并且正在研究将对象集合序列化为 Json 属性数组。

我的问题是如何使用 Json.Net 将 MemberBooking 类型中的 MemberSlot 对象集合序列化为所需的 Json?

对象的名称将始终为数字 1 -> 4,但部分或全部可能不存在。

问题

我可以将 MemberBooking 对象中的 List 属性更改为 Dictionary 并适当地填充字符串键吗?

对象层次结构

当前的 Json

所需的 Json

0 投票
1 回答
1670 浏览

c# - Xamarin PCL Refit 3.0.1 ,看起来不像是 Refit 界面

我最近开始研究一个带有 PCL 类的 Xamarin Android/iOS 项目,我想在其中放入所有逻辑。就像我的 Refit 接口、ReactiveUI ViewModels 等等,但每次尝试执行我的代码时,我都会收到一条错误消息我的界面不是改装界面。目前我的界面是这样的。

据我所知,这看起来不错,并且当我尝试从特定平台(如 iOS 项目)加载它时也有效。但是,如果尝试从 PCL 执行此操作失败!我已经在我的平台特定项目 Android 和 iOS 中安装了 Refit 包,并且我在 PCL 中引用了一个 dll,我错过了什么?

如果需要更多信息或您有任何疑问,请随时提出。不用多说,感谢您的阅读,希望有人可以帮助我,因为过去几天我开始失去理智。

编辑:添加调用方法。在这里,我从 ViewModel 调用它

0 投票
0 回答
1744 浏览

c# - Refit / HttpClient / ModernHttpClient - 400 错误请求

最近开始使用 ReactiveUI,到目前为止一切都很好。在尝试找出问题时,我遇到了一个HttpClient / Refit问题。我有一个很长的列表,该列表中的每个项目都必须向 API 发出请求,如下所示。

这是一个反应对象

在 DownloadMultipleCalls 中发生了以下情况。

最后,这行代码出错了var searchResult = await api.GetAvaPerStatusRaw(id);应用程序崩溃并响应“400 Bad Request”,如果我查看错误,它说没有 id 值代替 GET 请求。但是当我检查id 有一个值的初始值时,它不应该对此做出响应。谁能帮我这个?如果您有任何问题,请随时提问。非常感谢。

亲切的问候,

费尔南多

0 投票
2 回答
2060 浏览

c# - 如何在 Refit 中禁用 urlencoding 获取参数?

我使用 Refit for RestAPI。我需要创建相同的查询字符串api/item?c[]=14&c[]=74

在改装界面中我创建了方法

并创建 CustomParameterFormatter

CustomParameterFormatter 生成的字符串14&c[]=74

但是重新调整编码参数和生成的urlapi/item?c%5B%5D=14%26c%5B%5D%3D74

如何禁用此功能?

0 投票
1 回答
882 浏览

c# - 如何从非控制器创建通用未经授权的 IHttpActionResult

我有一个IHttpActionResult使用 Refit 返回的 API 调用。

我在单独的 DLL 中创建了一个单独的类来处理 API 调用。

这个类目前不是从 APIController 派生的,所以我怎样才能创建一个继承自IHttpActionResult. 我试过了ResponseMessageHttpResponseMessage和。其中大部分需要从. 仅仅创建一个对象似乎太过分了。OkContent(Status, Message)APIContoller

那么如何创建一个继承自 的对象IHttpActionResult,以从普通的类/方法返回类似 401 的内容?

0 投票
1 回答
302 浏览

xamarin.forms - Azure Web api 在手机上调用很慢,但在 android 模拟器上运行良好

我正在尝试在 Xamarin Forms 应用程序中使用 Refit 调用我的 Web api,它似乎在模拟器中运行良好(2 - 5 秒),但大多数时候在真正的 android 手机上崩溃或需要很长时间才能返回罕见场合。我在 Azure 上使用基本的 5 DTU SQL 数据库。这可能是原因吗

在此处输入图像描述

我尝试从设备拨打 2 次电话,上图中的尖峰是它的结果。第一个查询需要一些时间,一旦它返回(这次我设法得到回复),我会进行第二次调用,该调用也会在延迟后返回。我需要使用索引吗..?

性能概述 - SQL 数据库

0 投票
2 回答
3789 浏览

c# - 改装 (C#) - 下载图像

我在我的 C# 应用程序中使用 Refit 与 REST API 交互,并且 API 方法有一个返回 .jpg 图像的调用。我想使用 Refit 下载此图像并将其作为字节数组获取,但它似乎返回了一个乱码。见下文。下载图片的界面方法见下图

我尝试将字符串解析为 Base64 字符串,但这不起作用,所以我认为不是这样。有任何想法吗?

编辑:这里的第一行乱码响应。请注意,如果在浏览器中访问相同的 URL,它可以正常工作并显示图像

����\0\u0010JFIF\0\u0001\u0001\0\0H\0H\0\0��\0XExif\0\0MM\0*\0\0\0\b\0\u0002\u0001\ u0012\0\u0003\0\0\0\u0001\0\u0001\0\0�i\0\u0004\0\0\0\u0001\0\0\0&\0\0\0\0\ 0\u0003�\u0001\0\u0003\0\0\0\u0001\0\u0001\0\0�\u0002\0\u0004\0\0\0\u0001\0\0\u0002X�\u0003 \0\u0004\0\0\0\u0001\0\0\u0003 \0\0\0\0��\08Photoshop 3.0\08BIM\u0004\u0004\0\0\0\0\0\08BIM\ " \0\u0002\u0011\u0001\u0003\u0011\u0001��\0\u001f

0 投票
0 回答
292 浏览

xamarin - Xamarin Refit - 无法加载程序集错误

我是 Xamarin 平台的新手,本周试一试。当我导入 Refit 并在某处使用它时,会出现以下错误:

如何解决这个问题?这似乎是与 android 相关的错误,但我不知道如何解决它,我也是 C# 新手。

感谢帮助