Issue
,将无法得到答复。发生了什么?
远程请求发送Content-Type 设置为 application/x-www-form-urlencoded,框架会自动进行UrlEncode 编码处理。
对方想要gbk格式的数据
异常堆栈是什么?
⚠⚠ 必须提供完整可运行且包含错误的
Git
仓库 DEMO,DEMO 提供最简单的错误逻辑代码,否则将无法得到答复。⚠⚠
您的代码下载地址?
请提供安装的 Nuget
包版本号。
为了减少不必要的沟通成本和时间成本,请再次确认 Issue
已按照要求正确填写,否则将被直接关闭。
1. 先认真看 Issue 内容,严格按照 Issue 模板写
截个图,然后代码全靠猜吗。。。。
2. 文档已经提供,可以先搜索文档
您好,是提供个链接的意思么?https://gitee.com/wang_bo6675/friion-remote-test.git 直接可以启动,
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
你换位思考一下,我给你这两张图片(你提供的),你看你10分钟能否把代码运行环境配置好了,你来抄代码。:
感谢终于提供了 Demo
,经过测试,问题存在,不是框架的问题,但框架理应解决。
在 HttpClient
中发送 application/x-www-form-urlencoded
请求类型的内容对象使用的是 FormUrlEncodedContent
对象,这个对象底层默认对参数进行了 Uri.EscapeDataString
编码,可查看 .NET Core 底层源码:
所以就会导致中文或者特殊字母出现编码情况。
了解了 .NET Core 底层之后,框架做出了调整,如果没有配置 WithEncodeUrl(false)
,那么不做任何处理,如果配置了,那么通过 new StringContent
进行模拟 FormUrlEncodedContent
底层,如:
代码提交记录:
adebfd6#bf2eba07ca1df44493906e44b28e3938723535c6_707_709
1. 不配置 .WithEncodeUrl(false)
的情况
var obj = new
{
id = 1,
name = "百小僧",
age = 30
};
var res = await "https://localhost:5001/test"
.SetBody(obj, "application/x-www-form-urlencoded")
.PostAsync();
2. 配置 .WithEncodeUrl(false)
的情况
var obj = new
{
id = 1,
name = "百小僧",
age = 30
};
var res = await "https://localhost:5001/test"
.SetBody(obj, "application/x-www-form-urlencoded")
.WithEncodeUrl(false)
.PostAsync();
认认真真编写 Issue,提供复现错误的 Demo,可以节省很多不必要的时间。
将在下个版本 v4.8.4(今天)发布。
Furion
v4.8.4 版本已发布,已修正
您好,得再麻烦下您,这个问题还差最后的返回结果没有解决,
返回值
(我上面那个post的)respMsg = 入场信息重复, 请检查后再上传!
(框架的)respMsg = �볡��Ϣ�ظ�, ��������ϴ�!
希望得到的结果:可以设置返回值的编码类型,或者使用入参一致的编码
框架提供任何修改,麻烦可以看看远程请求拦截器,可以篡改任何数据,返回值等等....另外,以后提供的例子是复现错误的Demo
,而不是完整的项目,比如你把 Admin.NET
代码放上去了。
登录 后才可以发表评论