如以下链接所示,NCBI(国家生物技术信息中心)为C++,C#,Perl和Java中的生物信息学提供了一个小型但非常有用的SOAP客户端,但不幸的是,这个SOAP客户端没有PHP版本。
ftp://lucid.bic.nus.edu.sg/biomirrors/blast/web_services/
以下是Perl SOAP客户端的一部分,它帮助我们破坏基因序列:
my $search_lite = SOAP::Data->value(
SOAP::Data->name('options' =>
'SOAP::Data->value(
SOAP::Data->name('Blast4-options-lite' =>
'SOAP::Data->name('task' => 'blastn'))
)))->uri(NCBI_XML_NAMESPACE);
my $result =
$soap->call(SOAP::Data->name('Blast4-queue-search-request-lite')
->uri(NCBI_XML_NAMESPACE)
=> $search_lite);
我试图将其转换为PHP,但它不起作用。我还使用了这个准则:http://www.ncbi.nlm.nih.gov/books/NBK55699/
这是我的PHP代码:
try {
$soapClient = new SoapClient($wsdlUrl);
$result = $soapClient->SubmitSearchLite(array(
//????
));
echo $result;
}
catch {}
你能帮我解决它吗?
您是否考虑过使用 PHP/Java Bridge?它应该允许你通过Java使用Web服务,然后将你拥有的任何信息发送到你的PHP应用程序:
PHP/Java Bridge 是基于 XML 的流的实现。 网络协议,可用于连接本机脚本引擎, 例如PHP,Scheme或Python,带有Java虚拟机。是的 通过 SOAP 比本地 RPC 快 50 倍,需要更少的资源 在网络服务器端。它比直接更快、更可靠 通过 Java 原生接口进行通信,不需要 从 PHP 或 PHP 调用 Java 过程的其他组件 来自 Java 的过程。
如果 Web 服务中需要任何额外的更改,Web 服务和 PHP 应用程序之间的这个额外层将证明自己很有用,因为您很可能只需要弄乱 Java 层,保持 PHP 代码完整。
你知道PHP有自己的SOAP客户端,对吧?http://www.php.net/manual/en/class.soapclient.php