python 中 SOAP 请求的 HTTP500 结果
HTTP500 result from SOAP request in python
这个问题对于一项服务来说可能相当具体,但我不明白为什么我会从 SOAP 服务收到 HTTP500 响应。我看到了我想要访问的服务,我看到了哪些参数是必需的。我仍然收到 HTTP500。服务或我的代码有问题吗?
#!/usr/bin/env python
# Import WSDL package
from SOAPpy import WSDL
# Create service interface
wsdlUrl = 'http://bioinf.cs.ucl.ac.uk/psipred_api/wsdl'
# Download the WSDL file
server = WSDL.Proxy(wsdlUrl)
# Get the information about which services are provided by this host
print server.methods.keys()
# After selecting the service of interest let's find out which arguments are necessary
callInfo = server.methods['PsipredSubmit']
for para in callInfo.inparams:
print para.name, para.type
# Now let's discover what we will get back
for para in callInfo.outparams:
print para.name, para.type
sequence = "MLELLPTAVEGVSQAQITGRPEWIWLALGTALMGLGTLYFLVKGMGVSDPDAKKFYAITTLVPAIAFTMYLSMLLGYGLTMVPFGGEQNPIYWARYADWLFTTPLLLLDLALLVDADQGTILALVGADGIMIGTGLVGALTKVYSYRFVWWAISTAAMLYILYVLFFGFTSKAESMRPEVASTFKVLRNVTVVLWSAYPVVWLIGSEGAGIVPLNIETLLFMVLDVSAKVGFGLILLRSRAIFGEAEAPEPSAGDGAAATSD"
email = "psipred@cs.ucl.ac.uk"
subject = "test"
result = server.PsipredSubmit(sequence, email, subject, "True", "False", "False", "all")
print result
通常 500 结果表示服务器在处理您的请求时遇到意外错误。
这可能是一种临时情况,一两天后就会得到解决:可能是服务器的 RAM 芯片坏了,或者它的磁盘已满。
或者它可能完全是故意的:也许您提交的值之一在某种程度上是不正确的,并且服务器基本上是说 "You screwed up; go away."(在这种情况下,人们希望服务器会以更有帮助的诊断来响应消息,但并非总是如此。)
如果您与托管组织有正式联系,或者如果他们是愿意提供帮助的好人,您也许可以向他们发送消息询问出了什么问题。
您的代码看起来不错,我只是尝试通过 suds
访问服务器并且它有效。
from suds.client import Client
client = Client('http://bioinf.cs.ucl.ac.uk/psipred_api/wsdl')
print('PsipredSubmit' in client.wsdl.services[0].ports[0].methods)
>>> True
您平时使用代理吗?
也许服务器暂时宕机了?
sequence = "MLELLPTAVEGVSQAQITGRPEWIWLALGTALMGLGTLYFLVKGMGVSDPDAKKFYAITTLVPAIAFTMYLSMLLGYGLTMVPFGGEQNPIYWARYADWLFTTPLLLLDLALLVDADQGTILALVGADGIMIGTGLVGALTKVYSYRFVWWAISTAAMLYILYVLFFGFTSKAESMRPEVASTFKVLRNVTVVLWSAYPVVWLIGSEGAGIVPLNIETLLFMVLDVSAKVGFGLILLRSRAIFGEAEAPEPSAGDGAAATSD"
email = "psipred@cs.ucl.ac.uk"
subject = "test"
client.service.PsipredSubmit(sequence, email, subject, "True", "False", "False", "all")
>>> (reply){
>>> message = "job submission succesful"
>>> job_id = "2e9f0864-826a-11e6-9da3-00163e110593"
>>> state = 1
>>> }
使用 suds
提交作业有效,也许您只是在错误的时间抓住了服务器,或者您的 SOAP
库有问题?
这个问题对于一项服务来说可能相当具体,但我不明白为什么我会从 SOAP 服务收到 HTTP500 响应。我看到了我想要访问的服务,我看到了哪些参数是必需的。我仍然收到 HTTP500。服务或我的代码有问题吗?
#!/usr/bin/env python
# Import WSDL package
from SOAPpy import WSDL
# Create service interface
wsdlUrl = 'http://bioinf.cs.ucl.ac.uk/psipred_api/wsdl'
# Download the WSDL file
server = WSDL.Proxy(wsdlUrl)
# Get the information about which services are provided by this host
print server.methods.keys()
# After selecting the service of interest let's find out which arguments are necessary
callInfo = server.methods['PsipredSubmit']
for para in callInfo.inparams:
print para.name, para.type
# Now let's discover what we will get back
for para in callInfo.outparams:
print para.name, para.type
sequence = "MLELLPTAVEGVSQAQITGRPEWIWLALGTALMGLGTLYFLVKGMGVSDPDAKKFYAITTLVPAIAFTMYLSMLLGYGLTMVPFGGEQNPIYWARYADWLFTTPLLLLDLALLVDADQGTILALVGADGIMIGTGLVGALTKVYSYRFVWWAISTAAMLYILYVLFFGFTSKAESMRPEVASTFKVLRNVTVVLWSAYPVVWLIGSEGAGIVPLNIETLLFMVLDVSAKVGFGLILLRSRAIFGEAEAPEPSAGDGAAATSD"
email = "psipred@cs.ucl.ac.uk"
subject = "test"
result = server.PsipredSubmit(sequence, email, subject, "True", "False", "False", "all")
print result
通常 500 结果表示服务器在处理您的请求时遇到意外错误。
这可能是一种临时情况,一两天后就会得到解决:可能是服务器的 RAM 芯片坏了,或者它的磁盘已满。
或者它可能完全是故意的:也许您提交的值之一在某种程度上是不正确的,并且服务器基本上是说 "You screwed up; go away."(在这种情况下,人们希望服务器会以更有帮助的诊断来响应消息,但并非总是如此。)
如果您与托管组织有正式联系,或者如果他们是愿意提供帮助的好人,您也许可以向他们发送消息询问出了什么问题。
您的代码看起来不错,我只是尝试通过 suds
访问服务器并且它有效。
from suds.client import Client
client = Client('http://bioinf.cs.ucl.ac.uk/psipred_api/wsdl')
print('PsipredSubmit' in client.wsdl.services[0].ports[0].methods)
>>> True
您平时使用代理吗?
也许服务器暂时宕机了?
sequence = "MLELLPTAVEGVSQAQITGRPEWIWLALGTALMGLGTLYFLVKGMGVSDPDAKKFYAITTLVPAIAFTMYLSMLLGYGLTMVPFGGEQNPIYWARYADWLFTTPLLLLDLALLVDADQGTILALVGADGIMIGTGLVGALTKVYSYRFVWWAISTAAMLYILYVLFFGFTSKAESMRPEVASTFKVLRNVTVVLWSAYPVVWLIGSEGAGIVPLNIETLLFMVLDVSAKVGFGLILLRSRAIFGEAEAPEPSAGDGAAATSD"
email = "psipred@cs.ucl.ac.uk"
subject = "test"
client.service.PsipredSubmit(sequence, email, subject, "True", "False", "False", "all")
>>> (reply){
>>> message = "job submission succesful"
>>> job_id = "2e9f0864-826a-11e6-9da3-00163e110593"
>>> state = 1
>>> }
使用 suds
提交作业有效,也许您只是在错误的时间抓住了服务器,或者您的 SOAP
库有问题?