5

我正在测试一个 RESTful API,需要测试应用程序是否正确解析传入的数据。传入数据的类型可以是 XML 或 JSON 格式。应用程序查看标头中的 Content-Type 值以确定如何处理数据。

该应用程序运行良好,但我无法在 Symfony2 中为其编写适当的功能测试,因为在调用 URL 时我似乎无法设置 Content-Type。

我正在做这样的事情:

$crawler = $client->request('PUT','/api/record/, array("data" => $xmlData), array(), array("Content-Type" => "text/xml"));

虽然它没有抛出任何错误,但我的应用程序无法获取它。我使用 Firefox 的“海报”插件以及 cUrl 成功地测试了我的脚本。

任何帮助/想法将不胜感激。

4

1 回答 1

5

从我在Symfony2 测试部分(它使用CrawlerClient与应用程序交互)中看到的内容来看,您应该将它作为'CONTENT_TYPE' => 'application/xml'. 所以你应该尝试以下方法:

$crawler = $client->request('PUT','/api/record/', array("data" => $xmlData), array(), array('CONTENT_TYPE' => 'application/xml'));

请注意,我将其从 更改text/xmlapplication/xml,但两者都应该工作。

于 2012-06-07T22:22:34.470 回答