当前位置:网站首页 > 技术博客 > 正文

url_for flask



发送HTTP请求
在现实使用场景中,如果需要考虑与HTTP服务交互,一种常见的思考方式是:“我想构建一个URL,然后调用它”。Flurl.Http允许您非常简洁地表达这一点,比如:

 

上面的代码示例为:发送一个HTTP GET请求并返回一个IFlurlResponse,从这个IFlurlResponse中,你可以通过GetStringAsync和GetJsonAsync等方法获得如:状态码(StatusCode)、请求头和主体等内容。

但通常情况下你只是想直接获取请求主体的内容和信息,Flurl提供了各种快捷方式来实现这一点,比如:

 

对于JSON API,通常最好定义一个与预期JSON响应数据类型匹配的类(T)。但如果你不想创建这个匹配的类,也可以换动态(dynamic)的对象,比如:

 

或者,从返回JSON数组的API中获取一个动态列表,比如:

 

下载文件
你也可以使用Flurl从指定URL下载文件,比如:

 

读取其他信息

从请求中读取其他(如:头部信息等):

 

使用HTTP发送数据

Flurl常见的向远程服务器发送数据的方式有:PostJsonAsync,PatchJsonAsync,PutStringAsync,使用示例如下:

 

以上所有方法都返回一个Tash对象,当然,您可能希望在响应体中返回一些数据,Flurl也是可以轻松实现的,比如:

 

或者一些奇特的HTTP请求需求,比如:

 

或者,你还需要设置HTTP请求的头部信息,如下:

 

连字符在头文件名称中很常见,但在C#标识符中不允许,所以写成User_Agent便代表着User-Agent

设置超时时间
Flurl提供了设置请求超时时间的方法,比如:

 

取消HTTP请求

 

设置身份认证
Basic Authentication身份认证

 

OAuth 2.0 bearer token身份认证

 

模拟提交数据
模拟HTML表单提交数据:

 

multipart/form-data提交数据:

 

Cookie设置
在请求中携带Cookies:

 

更好的方案是,从第一个请求获取响应cookie,并让Flurl决定何时将它们发送回去,比如:

 

或者使用CookieSession来代替WithCookies,如:

 

CookieJar可以显式在被创建和修改,对需要长期保存的Cookies有可能会有用,比如:

 

CookieJar是Flurl在HttpClient堆栈中的CookieContainer的对等物,但是有一个主要的优点:它没有绑定到HttpMessageHandler对象,因此你可以在一个HttpClient/Handler实例上模拟多个Cookie会话。

版权声明


相关文章:

  • mysql各版本的区别2025-05-21 12:01:02
  • ftok(".",'a')2025-05-21 12:01:02
  • linux实时监控命令2025-05-21 12:01:02
  • java监视器对象模型2025-05-21 12:01:02
  • webshell权限有哪些2025-05-21 12:01:02
  • pyc文件怎么生成2025-05-21 12:01:02
  • java成员变量和成员方法2025-05-21 12:01:02
  • fork函数实现原理2025-05-21 12:01:02
  • u盘解除写保护教程2025-05-21 12:01:02
  • 反编译.o2025-05-21 12:01:02