Мне нужно знать, как получить значение URL моего заголовка PHP - PullRequest
0 голосов
/ 23 мая 2019

РЕДАКТИРОВАТЬ ........

Это НЕ вопрос, как опубликовано.Контекст был изменен @ miken32, спасибо вам за это.Похоже, что это было сделано, чтобы тот же человек мог сказать, что это дубликат «похожего» вопроса, но это не так.Разумно убедиться, что кто-то правильно выполняет Часть A, прежде чем пытаться выполнить Часть B, что также может привести к Части C.

Предлагаемый «дубликат» не содержит полного ответа, как и та же проблема, с которой я столкнулся изначальноизложено в моем оригинальном посте.это было отредактировано до смерти.Ни один пример не показал, что я видел там команду POST. Ответы неполные.Это не ответ для cURL POST, и структура кода несколько отличается.Если бы я был и экспертом, я бы не спрашивал!Конечно, я могу пойти и получить ответ, но мне нужен ответ для моего POST.

Нет логики в удалении половины или более текста в моем исходном вопросе, независимо от того, сколько у вас есть замечаний или замечаний.фактически то, что осталось, полностью изменило вопрос и не помогает мне убедиться в правильности части А, прежде чем переходить к части В. Существует даже ответ о неправильности заголовка, но эта часть сообщения теперь удалена.Очевидно, что этот пост был сделан до редактирования.То, что сейчас остается - это, казалось бы, неуместный ответ.Ох и еще раз спасибо.

Я прошу, чтобы кто бы это ни делал, будьте немного внимательнее к постеру, а не задавайте вопрос, каким вы этого хотите.

Я думаю, что я буду меньше публиковать на стеке или чем-нибудь другоми многое другое в других местах.Это не первый раз, и это совершенно неуважительно по отношению к оригинальному сообщению!

Я надеялся найти здесь некоторое руководство и только разочаровался.

РЕДАКТИРОВАТЬ ........................................

Я.пытается загрузить файл на страницу, которая отвечает сообщением HTTP 201 Created и заголовком Location.Мне нужно получить значение этого заголовка.

$request = curl_init('http://localhost:80/eSCL/ScanJobs');
// send a file
curl_setopt($request, CURLOPT_POST, true);
curl_setopt(
    $request,
    CURLOPT_POSTFIELDS,
    array(
      'file' => '@' . realpath('ScanSettings.xml')
    ));

// output the response
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($request);

// close the session
curl_close($request);

Это работает, но не дает мне нужное значение заголовка.

1 Ответ

0 голосов
/ 23 мая 2019

Ваша функция header использует неверный синтаксис для своих аргументов.Второй аргумент: $replace (bool, по умолчанию true) , который указывает, должен ли существующий заголовок быть перезаписан

header('HTTP/1.1 201', 'Created');

Должно быть:

header('HTTP/1.1 201 Created');

Если вы хотите прочитать заголовки с помощью curl, вы должны активировать эту опцию:

curl_setopt($request, CURLOPT_HEADER, 1);

Затем вы должны отфильтровать заголовки из возвращенных данных после вызова curl_exec:

$response = curl_exec($request); // don't echo directly, we need that data filtered!

$header_size = curl_getinfo($request, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...