@ChernovGV

Как в php отправить PUT запрос определенного вида?

Добрый день!
Необходимо отправить файл на удаленный сервер запросом вида:
PUT /<context-path>/<upload-context> HTTP/1.1
Host: host
Date: date
Content-Length: size
Content-MD5: hash
X-Upload-Dataprovider: GUID
X-Upload-Filename: filename
<file data>


Гугл говорит использовать cURL, но как костамизировать запрос именно такого вида ума не приложу.

Пробовал использовать сокеты:
$content  = 'PUT /ext-bus-file-store-service/rest/homemanagement HTTP/1.1' . "\n"
            . 'Host: XXX' . "\n"
            . 'Date:'.date('c')."\n"
            . 'Content-Length: ' . $file['size'] . "\n"
            . 'Content-MD5: ' . $file['hash'] . "\n"
            . 'X-Upload-Dataprovider: XXXXXXXXXXXX'. "\n"
            . 'X-Upload-Filename: ' . $file['fileName'] .  "\n"
            . $file['file_content'];

        $errno = 0;
        $errstr = '';
        $responce = '';
        if(!($socket = fsockopen('ХХХХХХ', 00000, $errno, $errstr, 15))) {
            die('FAIL!');
        }
        fwrite($socket, $content);
        while (!feof($socket)) {
            $responce .= fgets($socket, 128);
        }
        fclose($socket);

Но в $responce пустота...
Подскажите как выполнить данный запрос?
  • Вопрос задан
  • 456 просмотров
Решения вопроса 1
Lomoson
@Lomoson
Рекомендую https://github.com/nategood/httpful.
Зачем вам при таком обращении сокеты?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
madmages
@madmages
Человек прямоходящий
curl > CURLOPT_PUT
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы