SOAP Web服务uri或命名空间格式

时间:2015-04-13 09:38:32

标签: python perl web-services soap

所以我看到了用于python

namespaceurl的SOAP客户端程序

并将uriproxy用于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

我知道urinamespace是用来表示SOAP用来注册服务的相同名称的单词。

我的问题是该格式是否用于命名 即必须urn:...http://... 或者我可以简单地使用testwebservice之类的东西来注册Web服务

1 个答案:

答案 0 :(得分:0)

命名空间名称是绝对IRI。 (IRI基本上是一个支持非ASCII字符的URI。)任何绝对IRI。该计划(http,urn等)并不重要。它不能是testwebservice,因为它不是有效的绝对IRI(或URI)。

命名空间名称仅用于标识目的。它不用于资源检索,因此使用返回404的HTTP IRI是完全正常的。