问题标签 [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 回答
485 浏览

c# - 如何使用 Flurl 发布到登录表单

我想在 url(即 eclass.aueb.gr)中表示一个登录以获取下一页的源代码(用户的投资组合)。我现在拥有的是文档中的代码...

当前响应是 url 本身的代码。

0 投票
1 回答
1216 浏览

uwp - 如何使用 flurl 在 uwp 中发布多部分/表单数据

我在 uwp 中使用 flurl,并希望将图像文件发布到服务器。

服务器 api 需要一个参数“image_file”,一个二进制文件,需要使用 multipart/form-data 发布。

现在我有一个 StorageFile,如何发布它?

0 投票
1 回答
396 浏览

c# - 如何将 HttpClientHandler 添加到 url?

我有这个请求处理程序:

和:

如何将请求处理程序添加到 FlurlClient?

0 投票
1 回答
258 浏览

c# - 使用 Flurl 时如何使用自定义动词发出 HTTP 请求?

我需要发送OPTIONS请求。使用 Flurl 时如何构建客户端?

0 投票
1 回答
770 浏览

c# - 使用 Flurl 发出 PUT 请求时出现 NullReferenceException

我正在构建一个 Url 并PUT使用 Flurl 发出请求,如下所示:

但是我在调​​用时遇到了一个异常PutAsync

System.NullReferenceException 发生 HResult=0x80004003 消息=对象引用未设置为对象的实例。Source=Flurl.Http StackTrace:在 Flurl.Http.FlurlClient.ReadResponseCookies(HttpResponseMessage response) at Flurl.Http.FlurlClient.d__28.MoveNext() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime。 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 处的 CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

我应该使用try / catch并忽略异常吗?

0 投票
1 回答
1388 浏览

httpclient - 使用 PostUrlEncodedAsync 时如何从 Content-Type 中删除 charset=utf-8

当使用 Flurl 的 PostUrlEncodedAsync 发布数据时,会自动设置以下 Content-Type:

应用程序/x-www-form-urlencoded;字符集=utf-8

如何删除 charset=utf-8 部分?

我已经尝试过:

但它不起作用。建议来自:https ://stackoverflow.com/a/44548514/915414

0 投票
1 回答
327 浏览

c# - 客户端机器:在 Flurl.Http.FlurlClient.ReadResponseCookies 处抛出 NullReference 异常

问题仅发生在我的客户端计算机上。我在 4 台机器上运行我的应用程序,但没有成功复制。

在使用 Flurl 库时,我想就调试以下异常提出建议和帮助:

什么可能导致此异常仅在特定机器上运行?

System.TypeInitializationException:“Module.Performance.PriceProviders.YahooClientFactory”的类型初始化程序引发了异常。---> System.AggregateException:发生一个或多个错误。---> System.NullReferenceException:对象引用未设置为对象的实例。在 Flurl.Http.FlurlClient.ReadResponseCookies(HttpResponseMessage response) 在 Flurl.Http.FlurlClient.d__28.MoveNext() --- 内部异常堆栈跟踪结束 --- 在 System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)在 System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task1.get_Result() 在 Module.Performance.PriceProviders.YahooClientFactory..cctor() --- 内部异常堆栈跟踪结束 --- 在 Module.Performance.PriceProviders.YahooClientFactory.get_GetYahooClient() 在 Module.Performance.PriceProviders.YahooFlurlClient .d__9.MoveNext() --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task ) 在 Module.Performance.PriceProviders.YahooStockPriceProvider.d__0.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪--- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime .CompilerServices.TaskAwaiter。Module.Performance.PriceProviders.PriceProviderBase.d__3.MoveNext() 处的 HandleNonSuccessAndDebuggerNotification(任务任务)

异常下方的代码如下所示:

YahooClientFactory 是优化请求时间的单调因素。工厂经常被其他异步任务(更高层)调用

0 投票
3 回答
1453 浏览

redirect - 在 FlurlClient 中禁用自动重定向

我正在使用FlurlHttp并且我想为某些 API 调用禁用 AllowAutoRedirect。我知道如何让 System.Net.Http.HttpClient 不遵循 302 重定向?

但是对于 Flurl,我发现只有类似于 C# Flurl - Add WebRequestHandler to FlurlClient中描述的方式(我还没有编译下面的代码,所以它可能有一些错误)

然后我可以传递新 FlurlClient 的设置:

它看起来可能更复杂。这是正确的方法还是可以更简单地完成?

2021 年更新:Flurl 现在支持开箱即用

await url.WithAutoRedirect(false).GetAsync();

在https://flurl.dev/docs/configuration/#redirects中查看更多选项

0 投票
1 回答
1510 浏览

c# - 从 http 服务流式传输大文件

我正在编写一个组件以从 HTTP 服务流式传输大容量(4+ GB)。该组件采用 URL 和目标流。目标流可以是文件流,也可以是 POSTS 到不同 HTTP 服务的流,或者两者兼而有之。作为我的组件的作者,我需要执行以下步骤,直到完成:

  1. 从 HTTP 流中读取合理大小的缓冲区,
  2. 将此缓冲区写入目标流,
  3. 刷新目标流(输出到磁盘、网络等)

我不应该超过内存中数据缓冲区的大小。

我正在使用 flurl 对服务器进行 HTTP 调用。我尝试了以下方式拨打电话

这给了我一个 MemoryStream,它不起作用,因为它会填满并占用与文件大小一样多的内存。

再次,内存流。

这个看起来很有希望,但是很可惜,它尝试使用单个 Write() 语句来编写整个内容。

我怎样才能在不破坏记忆的情况下完成这项任务?我更喜欢使用 flurl,但我并不依赖它。

0 投票
1 回答
2624 浏览

c# - 从 Flurl.Http v2.0.1 中的请求中取回 cookie

使用 Flurl.Http v1.2 时,我们有以下代码:

根据发行说明,升级到 v2.0.1 后,第 4 行不再编译,因为client它不再是 an ,IFlurlClient它现在是 an 。IFlurlRequest

我注意到它IFlurlRequest有一个Client属性,所以我将第 4 行更改为:

现在编译但在运行时失败并出现 InvalidOperationException:

此实例已启动一个或多个请求。只能在发送第一个请求之前修改属性。

我假设这是因为底层 HttpClient 的积极重用。我在 3 和 4 之间添加了一行,以每次创建一个新的 FlurlClient 以确保实例无法启动请求。

这现在再次起作用,但我不确定我是否以正确的方式这样做。对于任何反馈,我们都表示感谢。