如何将XML格式的POST DATA发送到CakePHP的外部URL

时间:2013-01-18 00:23:15

标签: xml forms api cakephp post

我正在使用CakePHP编写一个使用来自Web服务的数据的应用程序。 webservice API告诉我需要将我的POST DATA作为XML发送,如下所示:

<Request>
    <Key>abcd123</Key>
    <Param1>myval</Param1>
</Request>

我怎样才能通过CakePHP实现这一目标?我尝试过这样的事情:

echo $this->Form->create(Model, array('url' => 'https://myprovider/API/myuserid'));
echo $this->Form->input('Key', array('value'=> 'abcd123'));
echo $this->Form->input('Param1', array('value'=> 'myval'));
echo $this->Form->end('Submit');

但在提交之前如何将POST数组转换为xml?

非常感谢,

克里斯

1 个答案:

答案 0 :(得分:0)

使用CakePHP中的HttpSocket将POST数组作为xml发送

App::uses('HttpSocket', 'Network/Http');
App::uses('Xml', 'Utility');
$http = new HttpSocket();
$http->configAuth('Basic', 'user', 'password'); //optional, if needs authentication
$xml_data = Xml::fromArray($this->request->data);
$xml_string = $xml_data->asXML();
$http->post('https://myprovider/API/myuserid', $xml_string);