2017-07-14 34 views
0

我想要使用REST API(第三方)并需要发送XML文件以及请求。我想设置文件以下列方式:如何在'Request'对象中设置XML文件(使用'setFiles'方法)Zend Framework 2

我的代码:

use Zend\Http\Request; 
use Zend\Http\Client; 
use Zend\Stdlib\Parameters; 

$request = new Request(); 
$request->getHeaders()->addHeaders(array(
    'Content-Type' => 'text/xml; charset=UTF-8' 
)); 
$request->setUri("<third-party-api-url>"); 
$request->setMethod('POST'); 
$request->setFiles(new Parameters(array("/path/to/xml/file.xml"))); 
$client = new Client(); 
$client->setAuth("<username>", "<password>", \Zend\Http\Client::AUTH_BASIC); 
$response = $client->dispatch($request); 
print_r($response->getBody()); 

在执行上面的代码,我得到如下回应:

[错误解码XML主体:组织.xml.sax.SAXParseException;文件的提前结束 。

我猜XML被截断为零长度文件,这是导致此错误。任何人都可以请帮我指导如何发送请求对象中的文件?

在此先感谢

迪利普

回答

0

使用的客户端,而不是:

$client = new Client(); 
    $client->setRequest($request); 
    $client->setFileUpload("/path/to/xml/file.xml", 'file1'); 
    $response = $client->send(); 
相关问题