c#客户端向 PYTHON SOAPLIB+WEB.PY 通信问题

fatlity 2011-06-17 01:01:34
现象:c#客户端获取不到服务器端的返回值,一直是null

c#客户端代码


//添加web引用http://127.0.0.1:8080/hello.wsdl为WS
WS.HelloService ws = new PYBETEST.WS.HelloService();
WS.hello inp = new PYBETEST.WS.hello();
inp.message = "me";
WS.helloResponse re = ws.hello(inp);
//re为null


python服务端代码


import web
from soaplib.wsgi_soap import SimpleWSGISoapApp
from soaplib.service import soapmethod
from soaplib.serializers import primitive as soap_types

urls = ("/hello", "HelloService",
"/hello.wsdl", "HelloService",
)
render = web.template.Template("$def with (var)\n$:var")



class SoapService(SimpleWSGISoapApp):
"""Class for webservice """

#__tns__ = 'http://test.com'

@soapmethod(soap_types.String,_returns=soap_types.String)
def hello(self,message):
""" Method for webservice"""
return "Hello world "+message



class HelloService(SoapService):
"""Class for web.py """
def start_response(self,status, headers):
web.ctx.status = status
for header, value in headers:
web.header(header, value)


def GET(self):
response = super(SimpleWSGISoapApp, self).__call__(web.ctx.environ, self.start_response)
return render("\n".join(response))


def POST(self):
response = super(SimpleWSGISoapApp, self).__call__(web.ctx.environ, self.start_response)
return render("\n".join(response))

app=web.application(urls, globals())

if __name__ == "__main__":
app.run()


用python客户端可以取得返回值
python客户端代码


from soaplib.client import make_service_client
from testServer import HelloService

client = make_service_client('http://localhost:8080/hello', HelloService())
a= client.hello('me')
print a

#Hello world me




难道c#调用python的webservice需要什么特殊的方法吗?
...全文
118 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧