Http 400 error经验之谈
迄今,本人在编码过程中,遇到过两次http 400 error,强烈觉得有必要写出来,分享一下,以让更多人少走些弯路。
首遇这个问题时,本人正开发一个C/S系统,在一个win form程序中调用Webservice服务。立马查询了google大神,可查出来的结果却差强人意。4xx,都是客户端错误。还好,这足以证明了,我写的服务端没问题,问题肯定出自于客户端调用的代码。经三天时间的调试,发现了原因出于一个读卡器返回的字符串,有大量空白字符,用去空格函数居然无效。后来果断用了正则表达式
Regex.Replace(fuckStr, "^\w*", "")
Trim()函数做不到的,正则表达式做到了(具体原因,我目前还搞不明白)。(在此向帆哥致以衷心的感谢)
第二次,以SOAP 方式调用某网站开发的接口。问题在于某次调用会失败,返回http 400 的错误。如果每次都返回相同的错误,那是说明代码不合理,但有时调用成功,有时失败。后来想了想,每次调用,执行的是相同的方法,不同的只有参数(在此再次向帆哥致以衷心的感谢)。果然,在生成soap 调用xml的时候,出错的调用,参数都包含html标记。果断过滤之,OK.
总结:其实在编码过程中,很多问题,静下心来思考一下逐个原因排除,肯定会找到原因的。