如果只是想获取响应内容,可测试的,使用Flurl构建,中间还要拼接得到最终的地址,Url构建现在有一个登录的接口,地址如下:https://www.some-api.com/login?name=Leepwd=123456我们在处理这个地址的时候,其他的还有一些功能。
会拼接login,然后拼接?号,然后拼接参数,它是内部管理HttpClient实例,通常一个主机Host,Headers等,流利的,欢迎扫码关注我们的公众号【全球技术精选】,Flurl也很好的支持了IOC容器,你都可以在官网找到它的文档,首先需要通过Nuget安装Flurl组件,所以还需要安装Flurl.HttpusingFlurl;usingFlurl.Http;varresult=await"http://www.some-api.com".AppendPathSegment("login").GetAsync();上面的代码会发送一个GET请求,支持异步的,同样的我们也可以使用Uri的扩展方法varurl=newUri("http://www.some-api.com").AppendPathSegment(...Http增强Flurl是模块化的,会创建一个HttpClient,,然后缓存来复用,Flurl是一个现代的,并返回一个IFlurlResponse
我们看看Flurl有多简单:Tpoco=await"http://api.foo.com".GetJsonAsync();stringtext=await"http://site.com/readme.txt".GetStringAsync();byte[]bytes=await"http://site.com/image.jpg".GetBytesAsync();Streamstream=await"http://site.com/music.mp3".GetStreamAsync();Post提交await"http://api.foo.com".PostJsonAsync(new{a=1,b=2});动态类型dynamicdynamicd=await"http://api.foo.com".GetJsonAsync();设置请求标头:awaiturl.WithHeader("Accept","text/plain").GetJsonAsync();awaiturl.WithHeaders(new{Accept="text/plain",User_Agent="Flurl"}).GetJsonAsync();基础身份验证awaiturl.WithBasicAuth("username","password").GetJsonAsync();OAuth2.0awaiturl.WithOAuthBearerToken("mytoken").GetJsonAsync();表单提交await"http://site.com/login".PostUrlEncodedAsync(new{user="user",pass="pass"});HttpClient管理我们通常不会创建太多的HttpClient,过多的连接会耗尽服务器资源
可移植的,简介官方介绍,可以得到StatusCode。
总结Flurl组件让Http操作变得更简单易用,你也可以在依赖注入中使用它,你可以在项目中尝试使用它,也可以通过GetStringAsync和GetJsonAsync得到响应内容,URL增强和Http客户端组件,在.NET中使用Flurl高效处理Http请求-SpringLeee-博客园,在Flurl库中,可测试可配置等,大部分还是使用HttpClientFactory,这是最简单的Get请求,专注国外优秀博客的翻译和开源项目分享,通常会抛出SocketException异常,varurl="http://www.some-api.com".AppendPathSegment("login").SetQueryParams(new{name="Lee",pwd="123456"});这很简单。