调用webservice接口,报错:(十六进制值0x01)是无效的字符
#事故现场
调用webservice接口,报错:(十六进制值0x01)是无效的字符。
如图:

意思是webservice返回的信息中包含无效的字符,无法解析成xml;
#分析
使用postman向webservice发送请求,请求成功,返回了数据,但在数据中发现了一些莫名其妙的字符,如图:

因数据来源数据库,故去数据库中查询,果然又发现,如图:

将异常文本复制到notepad++中,显示的是:SOH

SOH是ASCII中的控制字符,start of heading的缩写,报文头的意思;
在ASCII码中,第0~31号及第127号(共33个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等。

#解决方法
故取数据的时候要过滤掉这些字符,以C#代码为例:
/// <summary>
/// 过滤不可见字符
/// </summary>
/// <param name="sourceString">原始字符</param>
/// <returns>删除后结果</returns>
public string DeleteControlChar(string sourceString)
{
System.Text.StringBuilder sBuilder = new System.Text.StringBuilder();
for (int i = 0; i < sourceString.Length; i++)
{
int Unicode = sourceString[i];
if (Unicode > 31 && Unicode != 127)
{
sBuilder.Append(sourceString[i].ToString());
}
}
return sBuilder.ToString();
}
调用webservice接口,报错:(十六进制值0x01)是无效的字符的更多相关文章
- asp.net使用wsdl文件调用接口,以及调用SSL接口报错“根据验证过程 远程证书无效”的处理
1.调用wsdl接口,首先需要将wsdl文件转换为cs文件: 进入VS 开发人员命令提示行,输入如下命令: c:/Program Files/Microsoft Visual Studio 8/VC& ...
- [No0000133]c# ERROR:“.”(十六进制值 0x00)是无效的字符
December 24, 2013 c# exception “.”(十六进制值 0x00)是无效的字符. 解决方法:常见于socket方式连接(包括HTTP方式)等.报文交互时候,对方会在字符串后面 ...
- Bug集锦-Spring Cloud Feign调用其它接口报错
问题描述 Spring Cloud Feign调用其它服务报错,错误提示如下:Failed to instantiate [java.util.List]: Specified class is an ...
- php7-soap调用wsdl接口报错:Could not connect to host
由php5.6升级到php7.1以上版本,在用soap调用wsdl接口是报错:Could not connect to host 后来经过排查是centos服务器上装有2个版本的openssl造成的. ...
- aspx页面调用webapi接口报错:远程服务器返回错误:(500)内部服务器错误
代码在运行到response = (HttpWebResponse)request.GetResponse();就开始报错 原因:可能因为所调用的接口不存在或者接口中存在错误,可用postman测试接 ...
- XML:使用cxf调用WebService接口时报错:编码GBK的不可映射字符(设置UTF-8字符集)
调用代码如下 JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); Client client = dcf. ...
- 本地tomcat调用远程接口报错:java.lang.reflect.InvocationTargetException
今天碰到一个奇怪的问题,本地Eclipse起了一个tomcat通过http去调一个外部接口,结果竟然报了一个反射的异常,先看下完整日志: , :: 下午 org.apache.catalina.sta ...
- 调用 微信接口报错 {"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
如下截图,仅为备份,本文转载地址: http://www.cnblogs.com/liaolongjun/p/6080240.html 以下正文↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ...
- 解决:启用多线程调用webBrowsers函数报错:指定的转换无效
这里就需要委托. 定义一个 委托.加载之后给他绑定一个方法Callback,也就是所说的回掉函数. 然后写一个线程,线程需要一个object 的参数.将你定义的委托当作参数传进线程中的方法. 在线程中 ...
随机推荐
- iframe中有ajax,设置iframe自适应高度
------------------------------------------------------------------- http://www.jb51.net/article/1578 ...
- STM32 Keil 软件仿真设置
设置 Dialog.DLL 分别为:DARMSTM.DLL和TARMSTM.DLL, Parameter 均为:-pSTM32F103RC,用于设置支持芯片的软硬件仿真
- 判断割是否唯一zoj2587
Unique Attack Time Limit: 5 Seconds Memory Limit: 32768 KB N supercomputers in the United State ...
- CF894C Marco and GCD Sequence
题目链接:http://codeforces.com/contest/894/problem/C 题目大意: 按照严格递增的顺序给出 \(m\) 个数作为公因数集,请你构造出一个数列,对于数列中的任意 ...
- format函数格式化显示的方法
数字 格式 输出 描述 3.1415926 {:.2f} 3.14 保留小数点后两位 3.1415926 {:+.2f} +3.14 带符号保留小数点后两位 -1 {:+.2f} -1.00 带符号保 ...
- 解决WordPress网站被利用xmlrpc.php文件攻击问题
原因在于使用的WORDPRESS程序默认xmlrpc.php开启,而被用来DDOS攻击导致占用资源过高. 如何解决这个问题呢? 是屏蔽 XML-RPC (pingback) 的功能. add_filt ...
- vue中 transition组件使用总结
博客园比较啃爹啊,随笔只能手写,之前写在有道云笔记里面的内容也复制不了,忧伤..... 长话短说,看官方的transition 的讲解,可能是内容太多了,或者就是本人太辣鸡了,看的有点懵逼,但是项目中 ...
- PIC16F887的LCD
RS RA5 RW RA4 RD RA3 将引脚设置为输出的时候要对ANS5 ANS4 ANS3 设置为0
- SD.Team主题形象小人偶
W e ♥ S D ♫ ♪ 咔咔咔~可能源码冲突会造成小人偶光头 :)
- seacms_6.4.5 前台任意代码执行漏洞分析
环境搭建 1.下载安装包 下载地址: 链接:https://pan.baidu.com/s/1uw_VnxnvG4GGEae4TRsGGw 密码:cd48 2.常规安装 漏洞复现 poc1: http ...