PHP HTTP заголовок REST - PullRequest
       40

PHP HTTP заголовок REST

1 голос
/ 02 февраля 2011

Я разрабатываю пользовательский интерфейс для репозитория REST с использованием PHP и пакета PEAR HTTP REQUEST (http://pear.php.net/package/HTTP_Request/). Я создал HTTP-запрос GET и он доставляет запрошенный файл rdf / xml, как и ожидалось. Но я хочу расширить этот запрос иЯ не могу заставить это работать. Хранилище позволяет отправлять zip-файлы, которые прикреплены к идентификатору. Поэтому мне нужно вызвать тот же URL-адрес, который доставляет данные rdf / xml, но мне нужно изменить заголовок HTTP GET с xml, чтобы принять: application / zip, перед выполнением моего запроса. Это должно доставить zip вместо файла rdf / xml.

$req =& new HTTP_Request();
$req->setMethod(HTTP_REQUEST_METHOD_GET);
$req->setURL($url);
$req->clearPostData();
if (!PEAR::isError($req->sendRequest())) {
     $response2 = $req->getResponseBody();
} else {
     $response2 = "";
}

echo $response2;

Кто-нибудь знает, как изменить вызов GET, чтобы это сделать? Мне действительно нужна помощь!

Кроме того, я хочу создать запрос HTTP PUT, который использует multipart / form-data. Кто-нибудь знает, как это сделать?

Пожалуйста, помогите мне! Спасибо!

Ответы [ 2 ]

2 голосов
/ 02 февраля 2011

Для вашего первого вопроса вы можете установить поле Accept заголовка вашего запроса GET:

$req->addHeader('Accept', 'application/zip');
# assuming that this will trigger the server to respond with the zip and not xml

Вопрос № 2:

# Set method to PUT
$req->setMethod(HTTP_REQUEST_METHOD_PUT);

# Attach file to request
$req->addFile('file_upload_field', '/path/to/file.ext', 'application/zip');

Подробнее о загрузке файлов с использованием HTTP_Request .

0 голосов
/ 02 февраля 2011

Чтобы изменить заголовки запроса, взгляните на метод addHeader () объекта HTTP_Request: http://pear.php.net/manual/en/package.http.http-request.headers.php

Для изменения метода используйте setMethod (): http://pear.php.net/package/HTTP_Request/docs/latest/HTTP_Request/HTTP_Request.html#methodsetMethod

...