システム開発ブログ/ 企画開発部 Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ シェア

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

PEAR::HTTP_Requestのmulti-partについて

中村(次)
中村(次) (2010年8月27日 14:00)
企画開発部 / PHP

先日、PEAR::HTTP_Requestを用いてリクエストを投げるプログラムを実装したのですが、
Content-Typeをmulti-part/form-data設定した場合に、いろいろとはまったことを書きます。

まずは、リクエストを投げるため、以下のように実装しました。

// HTTP_Requestの初期化
$request = new HTTP_Request("リクエストを投げるURL");

// HTTPのヘッダー設定
$request->setMethod(HTTP_REQUEST_METHOD_POST);
$request->addHeader("Content-Type", "multi-part/form-data");

// リクエスト送信
$result = $request->sendRequest();


ひとまず、上記でリクエストを投げることが出来ますが、
これだけだと、Content-Type:multi-part/form-dataになりません。
「Content-Type:multi-part/form-data」と指定しているのにもかかわらず、
multi-part形式で送られないのです。


なぜかというと、Request.phpの969行目のコメントにこのような記述があります。

「multipart request, probably with file uploads」
「multipartのリクエストならば"たぶん"ファイルがあるであろう」というもの。

試しにファイルを添付したところ、multi-partで送られました。
$request->addFile("key", "ファイルパス");

ファイルが無ければ、Content-Typeを指定していても、
multi-part形式にはならないのです。

今回実装したプログラムは、ファイルが無くても、
multi-partで送る必要がありましたので、
ファイルを添付することで対応しました。
※ファイルを添付していても影響がないことがわかっていたので、そのように対応しました。

ちなみに、ファイルを添付したとしても、
そのファイルが空の場合は、multi-partにならないので、ご注意を!

「システム開発ブログ」へのコメントやご意見等ありましたら、 ファンページまでお願いします。  Facebook のファンページ

お問い合せ・情報はこちらの電話番号におかけください:03-3232-2525 お問合せ・資料請求はこちらをクリックしてください
ページのトップ
システム開発・一括受託開発。見積依頼受付中

システム開発専用サイト

システム開発の流れ・手順、実績など。アイロベックスのシステム開発を紹介。

VB .NETを主言語としたWebアプリケーションの開発

要件分析から保守まで、お客様の現場での問題解決だけでなく、IT経営の援護者としてトータルソリューションサービスを提供しています。

MovableType を使ったウェブサイト構築

魅力あるウェブサイトデザイン、構成はもとよりMovableTypeを使用したウェブサイトの作成、JAVA、CGIによる注文フォームの作成等、ビジネスを強力にサポートします。

フォルダーアクセス権限確認ツール『AD-Folder』

Windowsフォルダーアクセス権限確認ツール

フォルダーアクセス権限を一目で確認。使用版を無償でご利用いただけます。

スクール運営を応援する講座情報管理システム『CMS+AD for School』

Webとリアルをつなぐコンテンツマネージメントシステム

Webサイト・モバイルサイト・チラシ(PDF)・カタログ(InDesign)を、簡単かつ正確に作成できます。

「システム開発ブログ」の更新情報をTwitterで。

Twitter公式アカウントに認定されています

「システム開発ブログ」の更新情報をTwitterで。ぜひ、フォローをお願いします。