Я для конечной точки REST, которая будет принимать POST в форме XML. В настоящее время он выдает «Invalid xml message полученный» в vendor / friendsofsymfony / rest-bundle / EventListener / BodyListener.php (строка 115) при попытке декодировать содержимое.
Вот первые три строки кода. Обратите внимание, что сам XML проверяет правильность.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE SupplierSyncMessage SYSTEM "http://integrations.sciquest.com/app_docs/dtd/supplier/TSMSupplier.dtd">
<SupplierSyncMessage version="1.0">
Лучшее, что я могу сказать, это оскорбительная часть:
<!DOCTYPE SupplierSyncMessage SYSTEM "http://integrations.sciquest.com/app_docs/dtd/supplier/TSMSupplier.dtd">
Если я удалю эту строку из моего тестового сообщения, запрос будет обработан.
У меня не будет широты для получения XML без этой строки, так есть ли конфигурация или что-то, что скажет декодеру игнорировать его? Есть ли другой конфиг, который говорит ему использовать .dtd для проверки XML?
Есть идеи, что мне не хватает ... Не совсем понятно, с чего начать.
Добавление кода контроллера.
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
class DefaultController
{
/**
* Retrieves data via POST
*
* @Route("/api/import", methods={"POST"})
*
*
* @param Request $request
* @return \Symfony\Component\HttpFoundation\JsonResponse
* @throws \Exception
*/
public function getXML(Request $request) {
print_r($request); exit;
}
}