1

我正在使用 PHP 和 PEAR HTTP REQUEST 包 (http://pear.php.net/package/HTTP_Request/) 为 REST 存储库开发 UI。我创建了一个 HTTP GET 请求,它按预期交付了请求的 rdf/xml 文件。但我想扩展这个请求,但我无法让它工作。存储库允许发送附加到 id 的 zip 文件。因此,我必须调用传递 rdf/xml 数据的相同 URL,但在执行我的请求之前,我必须将 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 调用来完成这项工作?我真的需要帮助!

此外,我想创建一个使用 multipart/form-data 的 HTTP PUT 请求。有谁知道怎么做这个?

请帮我!谢谢!

4

2 回答 2

2

对于您的第一个问题,您可以通过以下方式设置 GET 请求标头的 Accept 字段:

$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 上传文件的信息

于 2011-02-02T11:56:44.683 回答
0

要修改请求标头,请查看 HTTP_Request 对象的 addHeader() 方法: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

于 2011-02-02T11:53:18.613 回答