gpt4 book ai didi

c# - 在两个 asp.net MVC web 应用程序之间传递非 ASCII 字符将不会被识别

转载 作者:太空狗 更新时间:2023-10-30 00:13:58 26 4
gpt4 key购买 nike

我有两个 asp.net mvc-4 和 mvc-5 web 应用程序,现在在我的第一个 asp.net mvc 中,我有以下 WebClient 来调用操作方法 (Home/CreateResource)在第二个网络应用程序上:-

using (WebClient wc = new WebClient()) 
{
var data = JsonConvert.SerializeObject(cr);
string url = scanningurl + "Home/CreateResource";
Uri uri = new Uri(url);
wc.Headers.Add(HttpRequestHeader.ContentType, "application/json");
wc.Headers.Add("Authorization", token);
output = wc.UploadString(uri, data);
}

现在在被传输到第二个操作方法的 data 对象中,它包含一个密码值,在我的例子中这个值是 ££123 有2 个非 ASCII 字符 ..

现在在第二个操作方法上它将接受上述值如下:-

enter image description here

如果有一种方法可以在两种操作方法之间传递非 ASCII 字符,那么任何人都可以提出建议吗?我检查在第一个操作方法中密码是否被序列化,并且密码是否正确地从 View 传递到操作方法。但问题出在数据如何在网络内部传输或第二个操作方法上的模型绑定(bind)器如何接受传入数据对象的某个地方?

最佳答案

总结:

如果您想传输非 ASCII(或高位 ASCII)字符,例如 £,您需要指定 WebClient 的编码属性。

在这种情况下,设置属性值的顺序并不重要,只要在调用 UploadString 之前设置即可。

using (WebClient wc = new WebClient())
{
var data = JsonConvert.SerializeObject(cr);
string url = scanningurl + "Home/CreateResource";
Uri uri = new Uri(url);
wc.Headers.Add(HttpRequestHeader.ContentType, "application/json");
wc.Headers.Add("Authorization", token);
wc.Encoding = Encoding.UTF8;
output = wc.UploadString(uri, data);
}

如果您希望使用 WebClient 从网站下载数据,请确保将编码设置为该网站使用的值。

关于c# - 在两个 asp.net MVC web 应用程序之间传递非 ASCII 字符将不会被识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38698173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com