在参数中接收 QRcode 字符串的 ASMX 服务会丢失一些字符

ASMX service that receive a QRcode string in parameters miss some characters

提问人:Andrew 提问时间:7/6/2023 更新时间:7/6/2023 访问量:17

问:

我有这个方法:

[WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        //[SoapHeader("User", Required = true)]
        public void GetValidationTicket(int idDispositivo, string QRCode, int tipologiaDispositivo, int profiloDispositivo)

这让我可以收到这样的票证的二维码:

APGMDAwMjgzMjc4MmSlaRVkpXqpAU1JU2SlaRhlbiBBMX%2BL8s92v6u5ssAmqFODq8pqH8yZ04YI%2B0KYINjpj9E2tgiOHUyI3RKufv45HcQcM24gyUz8k1FF6xdAy0VDDdg%3D

正如您所看到的,QRCode 内部有特殊字符“%”,这就是问题所在,因为我需要将其转换为以 64 为基数的字符串

对问题有任何想法吗?我的还是来电者? 谢谢

我期待像 EDAMDAwMjgzNjIwNWSmlmJkpqf2AU1JU2SmmEppdCBBMYVTqDlR7YhGvD6GAcKzTZQl6VGT/gbAOdXbeCL3c++FETwDjL5CqjnyhbLsaTNbO5Cz1lstuAqH8FTa9Jhg1jA=

C# asp.net .NET Web 服务 ASMX

评论


答:

0赞 JustAnotherDev 7/6/2023 #1

您的二维码是 URL 编码的。使用 HttpUtility.UrlDecode 对其进行解码。

https://learn.microsoft.com/en-us/dotnet/api/system.web.httputility.urldecode?view=net-7.0

%2B = '+'

%3D = '='

您可以在以下网站上在线测试: https://www.urldecoder.org/