我正在尝试使用Symfony2和phpUnit为多部分PUT编写单元测试。我不太确定处理此问题的最佳方法,而且我无法找到有关该主题的任何文档。
这是我必须要开始的,但我不知道如何进行多部分的下一步。
$client = static::createClient();
//test put method for new file
$xml = new UploadedFile(
dirname ( __FILE__ ).'/testfile.xml',
'testfile.xml',
'application/xml'
);
$crawler = $client->request('PUT', '/file.xml',array(),
array('xml'=>$xml),
array(
'CONTENT_TYPE' => 'application/xml'
));
EDIT 最终我希望我的看起来像这样
PUT /v1/files HTTP/1.1
host: files.bimfs.com
date: 2009-07-07T12:49:08-06:00
Content-MD5: 5a1d2ffa5b1fd1d11d694428a6f4b808
Authorization: f9ea57af8da1b02ff8fa6e99736ed3c6cbb95c1b:YTc4NDcyZjI1ZTFjN2E3MzAxODIwZGNlZGNlMTczODQyYjIwODVhMzI4ZDhjZTY4MmY4NmYyZGJjZTUyZjBiNg==
Content-Type: multipart/formdata; boundary=c7ecb1abb999a3de5ab26c49b5ac7f87
--c7ecb1abb999a3de5ab26c49b5ac7f87
Content-Type: application/xml
<?xml version="1.0" encoding="UTF-8"?>
<file>
<name>foo.gif</name>
<dead_date></dead_date>
</file>
--c7ecb1abb999a3de5ab26c49b5ac7f87
Content-Disposition: file; filename=blank.gif
Content-Type: image/gif
Content-Transfer-Encoding: binary
{file binary}
--c7ecb1abb999a3de5ab26c49b5ac7f87--
谢谢, CG
答案 0 :(得分:0)
默认情况下,createClient()
会返回Symfony\Component\HttpKernel\Client
。据我所知,它不支持自己构建多部分消息,但您可以自己添加标题并自行创建请求主体。
正如您在问题中已经概述的那样,您知道需要哪个额外的标头以及如何构建请求主体。