问题标签 [flurl]

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 投票
1 回答
756 浏览

c# - Flurl PostUrlEncoded 执行 GET 而不是 POST

我一定遗漏了一些非常明显的东西,但我不知道是什么。我有一个DoLoginAsync这样的:

当我在 catch 子句中带有断点的测试中运行此代码时,我得到一个异常

Call failed with status code 404 (Not Found): GET http://www.whatever.com/user_session

怎么回事?我期待PostUrlEncodedAsync做一个POST,而不是一个GET。有人知道为什么会发生这种情况吗?

Flurl 客户端实例化为client = new FlurlClient(BASE_URL).EnableCookies();

更新

尝试了以下测试失败并出现相同的异常

0 投票
1 回答
1245 浏览

polly - 使用 Flurl 设置默认 Polly 策略

我目前正在同时使用 Polly 和 Flurl,但我有一个共同的重试策略,我必须将其添加到每个请求中。我注意到 Polly 允许您使用 AddPolicyHandler(...) 设置默认值,但这需要一个 IHttpClientBuilder 并且我看不出有任何方法可以从 Flurl 中获取它。

我认为重载 DefaultHttpClientFactory 可能是要走的路,但这只能让我访问 HttpClient,而不是 IHttpClientBuilder。

我知道我可以制作自己的 HttpClients 并将它们传递给 Flurl,但如果可以的话,我宁愿避免这种情况,因为我希望 Flurl 管理它们的生命周期。

目前有没有办法做我想做的事?

0 投票
1 回答
66 浏览

c# - 使用自定义协议

我想使用另一种协议,而不是http(s)://特别想构建一个以开头vrchat://但由于某种原因它总是杀死第二个的 URL/

结果是

0 投票
2 回答
2999 浏览

c# - 如何将 Windows 身份验证与 Flurl 库一起使用?

Flurl具有进行 OAuth 和基本身份验证的方法:

但是如何使用当前登录的用户进行 Windows 身份验证?Flurl 建立在其之上的 HttpClientHandler 有一个属性 UseDefaultCredentials 但我不知道如何在 Flurl 中使用它。

0 投票
0 回答
534 浏览

c# - 无法通过 Flurl 发布附件错误 411 长度要求

有人可以解释我在这里做错了什么吗?我正在指定长度标题。不知道为什么它说“需要长度”。这个请求在我通过 Postman 发送时工作正常,但当我通过 C# 中的 Flurl 发送时失败。这是调用的API 文档

上传附件时出错:Flurl.Http.FlurlHttpException: POST https://xxx.leankit.com/kanban/api/card/SaveAttachment/365784226/733054060失败,状态码为 411(需要长度)。\r\n响应正文:错误请求\n您的浏览器发送了一个此服务器无法理解的请求。

上传文件代码

在此处输入图像描述

0 投票
2 回答
1055 浏览

flurl - Blazor 0.6.0 “擦拭” Flurl 兼容性?

将 Blazor 从 0.5.1(使用 Flurl)更新到 0.6.0 后,通过 flurl 调用会引发异常:

该项目创建一个 HttpClientFactory,它获取 Blazor 的 HttpClient 以供 Flurl 使用:

使用 HttpClientFactoryForBlazor 使用 Blazor 的 HttpClient (http) 创建 FlurlClient:

例如通过 Flurl 的扩展方法“IFlurlRequest.WithClient(c);”使用 FlurlClient (c)

因此,这种方法似乎不再有效。

有人知道如何使用 Blazor 0.6.0 制作 Flurl 吗?

调用堆栈是:

0 投票
2 回答
973 浏览

flurl - 多部分 Put 的 Flurl 扩展

我有一个 Flurl 实现已经用于多部分帖子(json 加文件附件)。我需要为 Put 添加一个以相同方式工作的扩展。到目前为止,我未能复制一个。

我的邮政编码...

我将如何构建一个类似的“.PutMultipartAsync”方法来代替它?

0 投票
1 回答
2654 浏览

c# - 使用 .NET Flurl/HttpClient 设置按请求代理(或轮换代理)

我知道使用Flurl HTTP .NET 库我可以使用自定义设置全局代理HttpClientFactory,但是有没有办法为每个请求选择自定义代理

对于许多其他编程语言,设置代理就像设置选项一样简单。例如,使用 Node.js,我可以:

用 Flurl 做到这一点的理想方法是这样的,目前这是不可能的:

我也知道为每个请求创建一个FlurlClient/HttpClient不是一种选择,因为我过去也经历过套接字耗尽问题。

这种情况是当您需要以某种方式轮换代理池时,以便每个 HTTP 请求可能使用不同的代理 URL。

0 投票
1 回答
1117 浏览

c# - 在 Flurl http get 请求中处理双重编码

在理解如何使用 flurl 在请求中传递编码数据时遇到了一些麻烦。我们有一个如下所示的 api:

在某些特定情况下,我们的标识符包含正斜杠 /

我们正在使用以下代码构建请求:

我们称之为:

现在。采用直接的方法,即使用正斜杠传入标识符;比方说 abc/123。上面的代码生成一个clientRequest,其路径为

预期会失败并出现 400 错误。因此,根据我们的 api 规范,解决方案是将正斜杠编码为 %2F,并将其传递到 url。值得庆幸的是,Flurl 在理论上通过允许 AppendPathSegment 方法中的可选参数使这变得非常容易,这将导致编码。所以我们修改上面的使用

它生成一个路径为的clientRequest

正是我期望看到的。如果我使用邮递员调用此 URL,那么我可以看到我期望从 API 得到的正确响应。

但是,当我使用 GetAsync 方法(同上)调用它时,我仍然会收到 400 Sub-Resource notrecognized 错误;在我的日志中,我可以看到实际请求是

在服务调用过程中是否有 Flurl 解码 url 字符串的点?如果是这样,我如何传递 %2F ?

已经尝试过双重编码,让请求包含标识符abc%252F123。鉴于上述情况,我预计这将被解码为 abc%2F123,然后将其发送到我们的 API。但在这种情况下,不会发生解码,请求 url 是

非常感谢您的帮助。

0 投票
1 回答
258 浏览

json - Web api 调用返回带有空字段的 json 数据

我正在使用 Flurl(下面的函数)获取一些 json 数据。我的问题是这会返回预期的字段,而不是实际的数据:

截屏

json 位于:https ://jsonplaceholder.typicode.com/users

完全相同的功能在不使用 Microsoft.AspNetCore.Mvc 的单独独立测试应用程序中运行良好。

任何想法为什么它会返回字段而不是数据?谢谢。