问题标签 [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 投票
0 回答
447 浏览

c# - 改装:有没有办法在查询中发送复杂对象列表

尝试使用 Refit 向控制器发送请求:

使用此方法添加接口:

过滤器行:

尝试添加 RefitUrlParameterFormatter。但它的功能 Format 来自这个对象的单独值。使用 IFormattable 解决了这个问题,但即使这样它也不能正常工作(控制器没有得到任何值)

0 投票
0 回答
361 浏览

c# - 如何在 xamarin 库/sdk 中使用 refit 调用 rest API

我正在构建一个 xamarin 库/插件,该插件应该使用 refit 调用 API,但是当我调用 API 时出现以下错误:

我的 SDK 代码:接口

MySDK.android.cs 我在其中进行 api 调用

使用 SDK:

但是当我尝试从应用程序以相同的方式调用 API 时,一切都按预期工作。如果我做错了什么,请帮助并纠正我,我是 xamarin 的新手

0 投票
2 回答
1341 浏览

c# - 如何验证 Prestashop API REST 客户端

我为我正在开发的 Bot App 创建了一个接口来使用 Refit 调用 Prestashop API。为了调用 API,您需要使用我拥有的 Prestashop API 密钥进行身份验证。要使用浏览器进行查询,我只需要使用以下格式调用 url:

@它使用签名前指定的 Api Key 进行身份验证。要定义改装,HttpClient我在 Startup.cs 中使用此代码:

然后我将 API 注入我的一个类并调用它的一个函数。URL 似乎是正确的,如果我将完整的 URL(基础 + [Get] url)粘贴到浏览器,它会正确返回 XML。但是当我从应用程序中执行此操作时,它会返回一个异常:

使用 Refit 的 HttpClient 进行身份验证的正确方法是什么?难道我做错了什么?

更新:

所以我尝试了这个:

这段代码在我的Startup.cs

而且我仍然收到相同的错误消息。

0 投票
2 回答
163 浏览

c# - 任务 oncomplete 没有继续

在此处输入图像描述当任务完成时,我需要去下一个活动,但它不会。它成功地在数据库中创建了一个帐户,但不会继续。

如下所示,我已经尝试过 oncomplete(task) 但是一旦我输入凭据并点击注册,它就会创建帐户但不会继续。

下面的代码(使用 refit 进行 Http 请求):

API_REQUEST_HELPER

MY_API

0 投票
2 回答
3285 浏览

uwp - 如何在 Refit 中设置自定义 JSON 序列化器

目前,API 响应包括两个对我的需要没有用的顶级属性。

如果我为此创建模型,我将拥有我想要摆脱的不必要的根对象?如何在 Refit for Windows App 中执行此操作?

0 投票
2 回答
1243 浏览

c# - 使用改装发送字节时有效负载太大

这是客户端错误

服务器端错误

服务器端代码

后字节码

这是改装后的帖子,我也停止了对其进行 url 编码,因为我认为这可能会使它太大。所以我只是把它作为一个字节发送,没有别的。将来我可能需要用它发送电子邮件或令牌。

如果您知道一种更好的格式来发送它,那将是很棒的,因为我将不得不为将来发送到服务器的数据量付费。

0 投票
0 回答
688 浏览

c# - System.Threading.Tasks.TaskCanceledException: '操作被取消。' 我的 byte[] 发送时间太长

在此处输入图像描述

这是我如何获取字节数组和数组类型以及我如何发送对象

它几乎需要一两分钟,所以我认为必须有一种更快的方式来发送它这里是 post 方法

这是节点js代码

控制台(我正在显示,因为我不确定这是否是一个字节 [] 应该是什么样子)。(它需要永远)我是新的并且想知道如何使这个发布过程更快并且不会失败,因为它花费了太长时间。

字节数组

0 投票
0 回答
560 浏览

c# - Polly 强制超时后任务仍在运行

我正在尝试使用 Polly 和 Refit 实现重试/超时过程来访问 Web 服务。我有 10 秒的超时策略(Polly.Timeout.TimeoutRejectedException on timeout)。我有 2 次尝试的重试策略。我有一个userCancellationToken可以被用户取消的。如果我没有设置 Polly 超时策略,客户端默认超时 100 秒后System.IO.IOException

虽然这段代码基本上可以工作,但我有一些问题:

1)我的代码大部分是正确的吗?

2)如果我的超时时间为 10 秒,并且我强制我的服务器在 15 秒内回答,作为超时测试,此代码正确执行 3 次尝试,每次 10 秒然后失败,但几秒钟后我显示 3“成功后。 ..”,这意味着任务仍在运行并等待数据,即使 Polly 取消了它。如何取消正在运行的任务?

3)如果我的服务器无法访问,我会System.Net.Sockets.SocketException在 4 秒后得到一个。如何减少此超时?

谢谢!

0 投票
1 回答
1071 浏览

c# - 改装 - 如何拥有可选的动态标题

我正在使用 Refit 并想为某些方法设置 OPTIONAL 动态标头。例如,如果用户已登录,我想要标题“UserId”和“AuthenticationToken”,否则不要设置标题

不确定我是否将空值传递给 userId 和令牌,这两个标头将具有空值或只是被跳过(不包含在标头中)?

谢谢。

0 投票
0 回答
1147 浏览

c# - 检查 ApiResponse 中的原始响应

在 Refit 中,是否可以在 ApiResponse 对象中获取原始 HTTP 响应?

在我的例子中,如果响应代码是 200,它返回类型Person。如果响应代码为 201,则返回错误响应。如果状态码为 201,我希望能够再次反序列化 HTTP 响应内容。

我已经阅读了以下链接,这与捕获异常和进行另一次反序列化有关。我已经在另一种情况下这样做了。但本案不同,也不例外。

如何处理异常

如何处理错误

如果响应代码不是 200 (ApiException),则禁用 Refit 以隐藏 HTTP 内容

提前致谢