在PHP中使用Web服务API

时间:2014-08-01 21:36:22

标签: php web-services soap wsdl

目前我正在尝试使用此处记录的API: http://www.sentimentanalysisonline.com/page/documentation/

我正在尝试使用getScore()web函数,但它一直给我这个错误:

  

致命错误:未捕获的SoapFault异常:[soap:Server] System.Web.Services.Protocols.SoapException:服务器无法处理请求。 ---> System.ArgumentNullException:值不能为null。   参数名称:s      在System.IO.StringReader..ctor(String s)      在System.Xml.XmlDocument.LoadXml(String xml)      at NaturalLanguageProcessing.SentimentScore.GetScore(String searchXML)在D:\ Jinu \ FromJinu \ BrandWatchPro \ Feeds Fetching Projects \ NaturalLanguageProcessing \ NaturalLanguageProcessing \ SentimentScore.asmx.cs:line 204

到目前为止,这是我的代码中的内容:

$input = <<<EOD
<?xml version="1.0"?>
<root>
 <apikey>$apikey</apikey>
 <QueryItems>
      <query>
                <id>unique identifier 1</id>
                <brandname><![CDATA[This is the end]]></brandname>
                <paragraph><![CDATA[This is really bad, the world is about to end. HELP]]></paragraph>
      </query>
</QueryItems>
</root>
EOD;

$client = new SoapClient('http://api.sentimentanalysisonline.com/sentimentscore.asmx?WSDL');
$client->getScore($input);

您可以免费获取API密钥以供自己试用。这是通过SOAP正确调用web功能的方法吗?我是使用API​​的新手,所以我尽量学习和阅读。

1 个答案:

答案 0 :(得分:0)

尝试将Wsdl文件加载到SoapUI中。它将为您创建模拟请求信封,并允许您将请求发送到Web服务。根据wsdl,您应该将xml作为requestXML属性发送。

试试这个:

$ client-&gt; getScore((object)array(&#39; requestXML&#39; =&gt; $ input));