2011-02-02 15 views
1

PHPとPEAR HTTP REQUESTパッケージ(http://pear.php.net/package/HTTP_Request/)を使用してRESTリポジトリのUIを開発しています。 HTTP GETリクエストを作成し、要求されたrdf/xmlファイルを期待通りに配信します。しかし、私はこの要求を拡大したいと私はこの作業を得ることができません。 リポジトリは、IDに添付されたzipファイルを送信できます。だから、私はrdf/xmlデータを配信する同じURLを呼び出す必要がありますが、私はリクエストを実行する前にxmlからaccept:application/zipにHTTP GETヘッダーを変更する必要があります。これにより、rdf/xmlファイルの代わりにzipが提供されます。PHP HTTPヘッダーREST

$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リクエストを作成したいとします。誰もこれを作る方法を知っていますか?

私を助けてください!ありがとう!

答えて

2

を、

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

質問番号2:

あなたがして、GETリクエストヘッダのacceptフィールドを設定することができます0

file uploads using HTTP_Requestの詳細を参照してください。

+0

ありがとうございます! GETリクエストは完全に機能しています! – Matt

+0

@ PUT:いくつかのファイルをaddFileで追加できますか?rdf/xmlファイルをRESTリポジトリにオプトインでZIPアーカイブに提出する必要がありますか? – Matt

+0

@Mattサーバーが1回のリクエストで複数のファイルを送信できるようにしていれば可能です。アップロードの上限、またはアップロードの最大合計ファイルサイズがあることに注意してください。これを受け入れられた答えとしてマークすると素晴らしいでしょう:) – Arvin