在没有WSDL的Delphi中使用PHP soap服务?

在没有WSDL的Delphi中使用PHP soap服务?,php,delphi,soap,Php,Delphi,Soap,当我有WSDL时,我非常熟悉在Delphi中使用web服务。我只需使用向导,几秒钟后就可以启动并运行了 我现在面临一个挑战,我得到了一个用PHP编写的soap接口,没有任何WSDL模式 给我的PHP示例是: <?php // The xml to be sent to the webService $reqest_string = <<<XML <test_api> <request>1</request> </test_

当我有WSDL时,我非常熟悉在Delphi中使用web服务。我只需使用向导,几秒钟后就可以启动并运行了

我现在面临一个挑战,我得到了一个用PHP编写的soap接口,没有任何WSDL模式

给我的PHP示例是:

<?php
// The xml to be sent to the webService
$reqest_string = <<<XML
<test_api>
    <request>1</request>
</test_api>
XML;

// create web service client
$client = new WSClient(array("to" => "http://api.infax.co.za/edge_api.php"));

//  send request to the web service
$reply = $client->request($reqest_string);

// display the responce from the webservice
$xml_str = simplexml_load_string($reply->str);

// display response on screen
echo "Came from server = ".$xml_str->response."<br>";
?>

我已经尝试将xml发布到url,但是我得到了一个关于一个不存在的函数的soap错误


任何想法???

对于非常简单的SOAP web服务,遵循现有的示例/文档或(如果两者都不够好的话)使用HTTP代理(fiddler2)记录交互,然后使用您选择的XML库对通信进行编码可能会更容易

对于非常简单的SOAP web服务,遵循现有示例/文档或(如果两者都不够好的话)使用HTTP代理(fiddler2)记录交互,然后使用您选择的XML库对通信进行编码可能更容易

你知道你想要请求的函数是如何命名的吗?根据2页的api文档,你可以使用test_api函数进行测试:交叉检查,这样你就知道你在做什么了。为了发现一个你不太了解并且想玩的服务,我会首先使用一些SOAP GUI工具来探测函数名和参数类型。我非常确定函数名和参数,我只是不知道如果没有WSDL,如何在Delphi中实现它。我可以在Delphi中对WSDL进行反向工程吗?你为什么发布PHP代码?是的,您可以自己编写WSDL并将其提供给SOAP客户端。您知道要请求的函数的名称吗?根据2页的api文档,您可以使用test_api函数进行测试:交叉检查,以便了解您的操作。为了发现一个你不太了解并且想玩的服务,我会首先使用一些SOAP GUI工具来探测函数名和参数类型。我非常确定函数名和参数,我只是不知道如果没有WSDL,如何在Delphi中实现它。我可以在Delphi中对WSDL进行反向工程吗?你为什么发布PHP代码?是的,您可以自己编写WSDL并将其提供给SOAP客户端。谢谢,我尝试过使用SoapUI,但在进一步操作之前,它似乎需要WSDL?您是对的,请看-因此我编辑了我的回答,希望我可以使用SoapUI来构建WSDL。我有函数列表,我将尝试手动破解它。Start/Run/Notepad.exe谢谢,我尝试过使用SoapUI,但在进一步操作之前似乎需要一个WSDL?你是对的,看到了-所以我编辑了我的答案,希望我可以使用SoapUI来构建WSDL。我有函数列表,我将尝试手动破解它。启动/运行/Notepad.exe