问题标签 [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 发布到登录表单
我想在 url(即 eclass.aueb.gr)中表示一个登录以获取下一页的源代码(用户的投资组合)。我现在拥有的是文档中的代码...
当前响应是 url 本身的代码。
uwp - 如何使用 flurl 在 uwp 中发布多部分/表单数据
我在 uwp 中使用 flurl,并希望将图像文件发布到服务器。
服务器 api 需要一个参数“image_file”,一个二进制文件,需要使用 multipart/form-data 发布。
现在我有一个 StorageFile,如何发布它?
c# - 如何将 HttpClientHandler 添加到 url?
我有这个请求处理程序:
和:
如何将请求处理程序添加到 FlurlClient?
c# - 使用 Flurl 时如何使用自定义动词发出 HTTP 请求?
我需要发送OPTIONS
请求。使用 Flurl 时如何构建客户端?
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
并忽略异常吗?
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
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.Task
1.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 是优化请求时间的单调因素。工厂经常被其他异步任务(更高层)调用
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()
;
c# - 从 http 服务流式传输大文件
我正在编写一个组件以从 HTTP 服务流式传输大容量(4+ GB)。该组件采用 URL 和目标流。目标流可以是文件流,也可以是 POSTS 到不同 HTTP 服务的流,或者两者兼而有之。作为我的组件的作者,我需要执行以下步骤,直到完成:
- 从 HTTP 流中读取合理大小的缓冲区,
- 将此缓冲区写入目标流,
- 刷新目标流(输出到磁盘、网络等)
我不应该超过内存中数据缓冲区的大小。
我正在使用 flurl 对服务器进行 HTTP 调用。我尝试了以下方式拨打电话
这给了我一个 MemoryStream,它不起作用,因为它会填满并占用与文件大小一样多的内存。
再次,内存流。
这个看起来很有希望,但是很可惜,它尝试使用单个 Write() 语句来编写整个内容。
我怎样才能在不破坏记忆的情况下完成这项任务?我更喜欢使用 flurl,但我并不依赖它。
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 以确保实例无法启动请求。
这现在再次起作用,但我不确定我是否以正确的方式这样做。对于任何反馈,我们都表示感谢。