所以我看到了用于python
的namespace
和url
的SOAP客户端程序
并将uri
和proxy
用于perl,例如下面的
python soap client:
#!/usr/bin/python
import sys
from SOAPpy import SOAPProxy
option = sys.argv[1]
serverUrl='http://localhost:9000'
namespace='urn:/Date'
server = SOAPProxy(serverUrl, namespace)
response = server.dateInfo(option)
# read out the response
if (response == None):
print "Call returned error."
sys.exit(1)
print "Currently server date and time is " + response
perl soap client:
#!perl -w
use SOAP::Lite;
$soap_response = SOAP::Lite
-> uri('http://www.soaplite.com/Demo')
-> proxy('http://services.soaplite.com/hibye.cgi')
-> languages();
@res = $soap_response->paramsout;
$res = $soap_response->result;
print "Result is $res, outparams are @res\n";
现在首先,名称空间为urn:/Date
在第二个程序中,uri是http://www.soaplite.com/Demo
。
我知道uri
和namespace
是用来表示SOAP用来注册服务的相同名称的单词。
我的问题是该格式是否用于命名
即必须urn:...
或http://...
或者我可以简单地使用testwebservice
之类的东西来注册Web服务
答案 0 :(得分:0)
命名空间名称是绝对IRI。 (IRI基本上是一个支持非ASCII字符的URI。)任何绝对IRI。该计划(http,urn等)并不重要。它不能是testwebservice
,因为它不是有效的绝对IRI(或URI)。
命名空间名称仅用于标识目的。它不用于资源检索,因此使用返回404的HTTP IRI是完全正常的。