记录一下.NET Core Flurl的Post各种用法

如果只用Flurl进行URL构造,那么只安装Flurl就可以了,如果需要Flurl的全部功能,那么在NuGet上引入Flurl.Http就可以了,因为Flurl.Http已经引入了Flurl了。

Flurl的Post用法,Post有以下4种用法:

url.PostAsync()
url.PostJsonAsync()
url.PostStringAsync()
url.PostUrlEncodedAsync()

PostJsonAsync 接受一个Json格式的T类型。如果API端接受的参数形式为application/json,那么使用PostJsonAsync最合适不过了。下面看一个具体例子。

InvoiceInfo.cs:

namespace CheckInvoice
{
    public class InvoiceInfo
    {
        /// <summary>
        /// 发票代码
        /// </summary>
        public string Code { get; set; }

        /// <summary>
        /// 发票号码
        /// </summary>
        public string No { get; set; }

        /// <summary>
        /// 效验码,后6位
        /// </summary>

        public string VCode { get; set; }

        /// <summary>
        /// 金额
        /// </summary>
        public decimal Amount { get; set; }

        /// <summary>
        /// 日期 yyyyMMdd格式
        /// </summary>

        public string Date { get; set; }

        /// <summary>
        /// 授权码
        /// </summary>
        public string PermitCode { get; set; }

    }
}

新建CheckInvoice方法

public async Task<AjaxResult> CheckInvoice(InvoiceInfo invoiceInfo)
        {
            try
            {
                invoiceInfo.PermitCode = "授权码";
                var service_url = "http://xxxx.com";
                var result = await service_url.PostJsonAsync(invoiceInfo).ReceiveJson<InvoiceResult>();
                if (result.Success)
                {
                    return Success(result.Data, "查询成功");

                }
                
                return Error(result.Message);
            }
            catch(Exception ex)
            {
                return Error(ex.ToString());
            }

AjaxResult.cs:

public class AjaxResult
    {
        /// <summary>
        /// 是否成功
        /// </summary>
        public bool success { get; set; } = true;

        /// <summary>
        /// 错误代码
        /// </summary>
        public int code { get; set; } = 0;

        /// <summary>
        /// 返回消息
        /// </summary>
        public string message { get; set; }

    }

AjaxResult.T.cs

public class AjaxResult<T> : AjaxResult
    {
        /// <summary>
        /// 返回数据
        /// </summary>
        public T data { get; set; }
    }

Error与Success方法为基类提供的,自己构造一下就可以了。这里就不写了。

代码中,CheckInvoice 方法使用了PostJsonAsync,比较简单。

其实,在一般的使用过程中,我们只需要注意一下

url.PostStringAsync()与url.PostUrlEncodedAsync()这两个的区别,

开始比较笨,以为通过url拼接的是使用PostStringAsync,其实不然,url拼接是需要使用PostUrlEncodedAsync这个方法的,例如:

var query = "token=xxxxx&id=123$time=20220101";
var post_url = "http://xxxxx.com";
var result = await post_url.PostUrlEncodedAsync(query).ReceiveString();

result是返回的字符串,然后根据实际情况处理就可以了,在实践过程中PostStringAsync()与PostAsync()还没实际用到。后续在进行记录吧。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
未能加载文件或程序集“flurl.http, version=3.2.4.0, culture=neutral, publickeytoken=null”或它的某一个依赖项。找不到指定的文件。 这个错误通常出现在使用.NET开发的应用程序中,原因可能是以下几种情况之一: 1. 缺少相关的DLL文件:在使用flurl.http组件时,可能没有将所需的DLL文件复制到应用程序的运行目录中。解决方法是确保将flurl.http组件的DLL文件及其所有依赖项都放置在正确的文件路径中。 2. 版本不匹配:可能在代码中使用的flurl.http的版本与实际引用的版本不兼容。解决方法是检查代码中对flurl.http组件的引用,并确保版本号匹配。 3. 缺少依赖项:flurl.http组件可能依赖于其他的组件,而这些组件可能没有正确安装或引用。解决方法是检查flurl.http组件的文档或官方网站,确定是否有其他依赖项需要安装。 4. DLL文件被占用或损坏:在运行应用程序时,flurl.http的DLL文件可能正在被其他程序使用,或者文件本身可能已损坏。解决方法是尝试重新启动计算机,并确保DLL文件没有被其他程序占用。如果问题仍然存在,可以尝试重新下载和安装flurl.http组件。 综上所述,当出现"未能加载文件或程序集“flurl.http, version=3.2.4.0, culture=neutral, publickeytoken=null”"的错误时,需要检查是否缺少相关DLL文件、版本是否匹配、是否存在缺少的依赖项,同时也要注意DLL文件是否被占用或损坏。通过解决这些可能的问题,应该能够解决该错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倾斜的水瓶座

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值