webservice 调用接口返回值问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webservice 调用接口返回值问题相关的知识,希望对你有一定的参考价值。

webservice 中调用 另一个服务器接口 他的服务器return String 格式是300<response><result>0</result></response>我用的String 接收 只接受到了 <response><result>0</result></response> 上面的300 接收不到而且每次我关服务器的时候 会显示300<response><result>0</result></response

参考技术A 你的帖图里是200,不是300
根据这个贴图,我推测,这个200应该是http状态码,200表示成功,
http协议里200这个成功信息是放在响应头数据里,
<response><result>0</result></response>
才是服务器的响应内容,你接收时应该只取了响应内容,没有读取头信息,所以得不到200

事实上,所有的浏览器都只显示消息内容,不会去显示200这样的头信息的追问

哦。我第一次做,这个明白了 谢谢,重点是关闭服务器出的那些错误 有点不懂

参考技术B 上面的那个数字应该是HTTP的响应状态码吧,webservice的传输协议SOAP所使用的传输介质应该是一段儿完整的XML表达式才对。不应该会有未被XML标记包裹的表达式追问

对,是状态码, 哦,这个明白了 ,但是服务器关闭的时候会提示错误, 我调用的那个服务器的接口是吧XML 构造成 String 的 。。我用String 接收 为啥为出错呢

追答

这个问题没有碰到过,不过从异常信息来看,应该是某个后台线程在你服务器中断连接以后工作异常了。

参考技术C 你试试用Object接收之后再转换类型行不行追问

不行呢。开启服务没有错,可以将数据返回,重点是在关闭服务器的时候 报的错误,百度搜了没有相关的例子,
Unable to determine string representation of value of type [com.sun.xml.stream.writers.XMLStreamWriterImpl]
java.lang.UnsupportedOperationException

追答

你上面那一句报错的意思貌似是 无法确定类型的值的表示形式是字符串,你用Object接收它还是报这样的错吗?

追问

恩呢,用OB 接受 然后 转成 字符串输出的 还是这样子

追答

用Ob接收到的值是怎样的

追问

一样的 0 我觉得好像还有线程的错误。是不是执行完了HTTP 请求 没关闭呢 --

追答

那我也不知道了, 没碰到过这个问题,你问问给你接口的他们自己测试的时候有没有这个问题

追问

恩 谢谢你 这么耐心 我自己再看看吧

追答

不用,又没帮到忙

本回答被提问者采纳

请教个关于多线程调用webservice接口是不是会相互影响的问题

对webservice接口不太了解,请教个问题:IT数据库开放了一个webservice接口,根据输入的查询信息查询数据库后返回查询结果,一次查询大概需要十多秒。webservice服务名称是MESWebservice,访问过程中先初始化一个实例,假设命名为temp:MESWebservice.commservice temp = new MESWebservice.commservice();随后开线程服务ThreadService,里面使用temp.process()函数处理数据,线程里面查询返回结果大概需要十多秒。想问个问题:如果同一时间内有2个以上线程同时使用temp.process()处理数据,各个线程之间会不会相互影响。之所以问,是看论坛上说temp是个实例,实例的话如果像变量一样那么线程之间会有相互影响。如果这个实例是方法一样的东西那就不会相互影响,目前不太确定论坛上说temp是个实例到底属于哪一种。还请知道的指导下,谢谢。

会可能相互影响,因为是多线程操作同一个对象(实例).如果是每个线程建1个MESWebservice.commservice实例,那影响基本在web server端(如果server有共用对象,如数据库). 参考技术A 如果你担心有影响,就要想办法多写一两个(可执行的)测试用例来!否则,不必杞人忧天。编程以测试为准,而不是以理论为准。另外,不能说什么“使用实例就有影响、调用方法就没有影响”。这两个概念根本看不出“有还是没有”影响,所以是不置可否的。实际上,你去想想“自己能不能写出什么测试用例来获得bug”,这就是让你去稍微深入一点去想想“到底怎样才叫做有影响”。编程需要深入一点、主动一点,既然我们说不出什么“影响”来那么也不用怕,只要你有足够的测试就有勇气用你自己的方法继续下去。 参考技术B 设计一个测试用例,就是要想到“我这个测试可以深入到代码中的哪一行,我这个负载压力可以压到代码中的哪一行”,也就是有点深度。当你经常写测试,就好像你自己动手写的那样,并且集成在一起让它们随时可以自动反复去跑(例如你中午吃饭的时候就可以启动测试,然后回来时再来处理发现的第一个问题),那么技术才真正提高了,不用活在“还是不确定”的阴影里了。 参考技术C Wevservice接口是MES系统那边的,我这边只是客户端,没法控制那边,所以只能用他们给的接口 参考技术D 感觉WebServices还不如写个通用的Socket查询服务程序来的方便。

以上是关于webservice 调用接口返回值问题的主要内容,如果未能解决你的问题,请参考以下文章

WebService初入

调用webservice接口,报错:(十六进制值0x01)是无效的字符

急 ajax 调用问题

请教:C# WebService调用Java WebService(返回Json类型数据) ,为啥接收为null

如何调用WebService返回的复杂对象中的方法

客户端怎么测试webservice接口,怎么算测试成功