问题标签 [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.
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();
更新
尝试了以下测试失败并出现相同的异常
polly - 使用 Flurl 设置默认 Polly 策略
我目前正在同时使用 Polly 和 Flurl,但我有一个共同的重试策略,我必须将其添加到每个请求中。我注意到 Polly 允许您使用 AddPolicyHandler(...) 设置默认值,但这需要一个 IHttpClientBuilder 并且我看不出有任何方法可以从 Flurl 中获取它。
我认为重载 DefaultHttpClientFactory 可能是要走的路,但这只能让我访问 HttpClient,而不是 IHttpClientBuilder。
我知道我可以制作自己的 HttpClients 并将它们传递给 Flurl,但如果可以的话,我宁愿避免这种情况,因为我希望 Flurl 管理它们的生命周期。
目前有没有办法做我想做的事?
c# - 使用自定义协议
我想使用另一种协议,而不是http(s)://
特别想构建一个以开头vrchat://
但由于某种原因它总是杀死第二个的 URL/
结果是
c# - 如何将 Windows 身份验证与 Flurl 库一起使用?
Flurl具有进行 OAuth 和基本身份验证的方法:
但是如何使用当前登录的用户进行 Windows 身份验证?Flurl 建立在其之上的 HttpClientHandler 有一个属性 UseDefaultCredentials 但我不知道如何在 Flurl 中使用它。
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您的浏览器发送了一个此服务器无法理解的请求。
上传文件代码
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 吗?
调用堆栈是:
flurl - 多部分 Put 的 Flurl 扩展
我有一个 Flurl 实现已经用于多部分帖子(json 加文件附件)。我需要为 Put 添加一个以相同方式工作的扩展。到目前为止,我未能复制一个。
我的邮政编码...
我将如何构建一个类似的“.PutMultipartAsync”方法来代替它?
c# - 使用 .NET Flurl/HttpClient 设置按请求代理(或轮换代理)
我知道使用Flurl HTTP .NET 库我可以使用自定义设置全局代理HttpClientFactory
,但是有没有办法为每个请求选择自定义代理?
对于许多其他编程语言,设置代理就像设置选项一样简单。例如,使用 Node.js,我可以:
用 Flurl 做到这一点的理想方法是这样的,目前这是不可能的:
我也知道为每个请求创建一个FlurlClient
/HttpClient
不是一种选择,因为我过去也经历过套接字耗尽问题。
这种情况是当您需要以某种方式轮换代理池时,以便每个 HTTP 请求可能使用不同的代理 URL。
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 是
非常感谢您的帮助。
json - Web api 调用返回带有空字段的 json 数据
我正在使用 Flurl(下面的函数)获取一些 json 数据。我的问题是这会返回预期的字段,而不是实际的数据:
json 位于:https ://jsonplaceholder.typicode.com/users
完全相同的功能在不使用 Microsoft.AspNetCore.Mvc 的单独独立测试应用程序中运行良好。
任何想法为什么它会返回字段而不是数据?谢谢。