Я реализую поставщика данных, совместимого с OAI-PMH2, в PHP (который извлекает данные из базы данных MySQL), и я пытаюсь его проверить, но застрял только с одной ошибкой, которая мешает успешному выполнению.
Ошибка в некоторой степени связана с тем, что описано в этом вопросе , однако в моем случае запрос POST с verb=Identify
проходит успешно, а второй не выполняется.
Что еще более неприятно, тот же запрос успешно обрабатывается, когда я отправляю его с помощью curl
, т.е. он выводит правильно сформированный XML.
Чтобы быть более конкретным c, я получаю ошибку следующее:
REQUEST http://www.mydataprovider/my_oaipmh2.php POST
identifier:oai:www.mydataprovider/my_oaipmh2.php:1
metadataPrefix:oai_dc verb:GetRecord
FAIL POST test 2 for GetRecord was unsuccessful, got neither a valid response nor an error
(www.mydataprovider/my_oaipmh2.php означает фактический URL-адрес, конечно.)
Итак, я пробовал выполнить (несколько раз) один и тот же запрос POST через curl
, например:
curl --data "verb=GetRecord&metadataPrefix=oai_dc&identifier=oai:www.mydataprovider/my_oaipmh2.php:1" http://www.mydataprovider/my_oaipmh2.php
, и он всегда успешно возвращает правильный ответ XML с первой записью.
Что мне не хватает? Может быть, это связано с некоторыми настройками на стороне сервера? (У меня самого нет доступа к управлению сервером, но я, конечно, могу спросить у хостинг-провайдера.)