PC<9527> 2024-09-27 17:12 采纳率: 0%
浏览 40
已结题

C# webservice 参数特殊字符处理

C# webservice接口,xml字符串参数中存在特殊字符 (char)2、(char)3,导致请求400异常
参数:数据项以字符\x01分隔,
1    SerialNo    varchar(32)    申请流水号
2    ApplyItemInfo    varchar(512) 项目信息    
如果该申请只有一个项目时:申请项目ID + char(2)+ 申请项目中心码 +char(3)
如果该申请有多个项目时:
申请项目1 ID + char(2)+ 申请项目1中心码 +char(3) +申请项目2 ID + char(2)+ 申请项目2中心码 +char(3)  如此类推
如果该申请只有一个项目时:

需要 visual studio 中正常请求到webservice接口

  • 写回答

26条回答

  • 阿里嘎多学长 2024-09-27 17:12
    关注
    获得0.30元问题酬金

    AIGC生成:


    C# WebService 参数特殊字符处理

    你遇到的问题是 C# WebService 接口中,XML 字符串参数中存在特殊字符(char)2、(char)3,导致请求 400 异常。

    解决方案是使用 HttpUtility.HtmlEncodeXmlConvert.EncodeName 方法对参数进行编码。

    例如:

    string param = "SerialNo\x01varchar(20)";
    param = HttpUtility.HtmlEncode(param);
    

    string param = "SerialNo\x01varchar(20)";
    param = XmlConvert.EncodeName(param);
    

    这样可以将特殊字符转换为合法的 XML 字符串,避免请求 400 异常。

    另外,你也可以使用 System.Security.Cryptography 命名空间中的 HexEncode 方法对参数进行编码。

    string param = "SerialNo\x01varchar(20)";
    param = BitConverter.ToString(Encoding.UTF8.GetBytes(param)).Replace("-", "");
    

    这些方法都可以解决你的问题,但需要根据具体情况选择合适的方法。


    评论

报告相同问题?

问题事件

  • 系统已结题 10月5日
  • 创建了问题 9月27日