![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
質問させて頂きます。
XMLをAPIに送信する方法に関して質問させて頂きます。
まずはじめに、
以前(PHP5.2)は、下記の方法でXMLを送信することに成功していました。
-----------------------------------------------------------------
$xml = 'xml~~~~';
$curl = curl_init();
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 180);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $URL);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $xml);
curl_exec($curl);
curl_close($curl);
-----------------------------------------------------------------
PHP5.6環境で上記の方法を試した場合、接続はできているようなのですが、
XMLを正常に送れていないように思われます。
※全く関係無い場合は申し訳ありません。
自分なりに調べたところ、
PHP5.6以降はCURLFileクラスを利用するべきといった内容を見つけました。
しかし、CURLFileクラスの使用方法がいまいち分からず苦戦しております。
下に記述したものが実際に見つけた例です。
--------------------------------------------------------------------
// CURLFile オブジェクトを作ります
$cfile = new CURLFile('cats.jpg','image/jpeg','test_name');
// POST データを設定します
$data = array('test_file' => $cfile);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
--------------------------------------------------------------------
「cats.jpg」の部分にはファイルパスを記述するらしいのですが、今回xmlはファイルから読み込むのでなく、「$xml = 'xml~~~~';」といった感じで、その場で入力をするつもりでいます。
CURLFileではファイルとして存在するものしかアップロード出来ないのでしょうか。
また、「test_name」「test_file」の部分に何を記述して良いのかも分かりません。
「image/jpeg」の部分にはxmlのタイプを入れるのだと思います。
質問の内容に分かりづらい部分もあるかもしれませんが、
もし何かご存じの方がいらっしゃれば、ご教授のほどよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんにちは。
私は普段cURL使わないので的確な回答ではないかも知れませんが、CURLFileを使うとmultipart/form-dataでのファイルアップロードになってしまうのではないでしょうか。
ちなみにマニュアルを見る限りでは、「test_name」は「どういうファイル名としてアップロードするか」で、「test_file」はPOSTデータのnameのようです。
マニュアル
http://php.net/manual/ja/curlfile.construct.php
ここまでの回答でたぶん違和感をもたれているかもしれませんが、その場合はやはり、アップロード(CURLFile)ではないのかもしれません。
ただ、普通のPOSTで送るにしても、一般的には下記例のように、nameとvalueのペアで送りますので、CURLOPT_POSTFIELDSにXMLをテキストで入力、というのも、違和感がある気がします。(xml内にnameとvalueの記載をされているのかもしれませんが、マニュアルを見る限りxml形式は対応の記載が無いような気がします)
(例)
http://deamu.hatenablog.com/entry/2015/02/11/214 …
ちなみにPHPからPOSTする方法の検討としてはこの辺もご参考になるかもしれません
http://www.programming-magic.com/20080226023511/
いずれにしても、もういちどAPIを再確認されてみてはいかがでしょうか。(あるいは、APIの情報を補足として記載されたら、他の方の回答の参考になると思います。)
以上、間違っていたらすみませんが、ご参考になれば幸いです!
ご丁寧に回答頂きありがとうございます。
とても参考になりましたので、こちらの回答を元に、再度対応してみたいと思います。
改めて、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
move_uploaded_fileについて
-
htmlに関してです。
-
ホームページにアップロードし...
-
ftpでアップロードが出来ない
-
PHPで複数の画像を同時にアップ...
-
大きいファイルのアップロード...
-
ftp_putとftp_fput
-
Webサーバーにファイルをアップ...
-
フォントの色を変えるには?
-
別ファイルの変数を呼び出した...
-
HTTPで返されるファイル名の取...
-
PHPからMSSQLへの接続結果の文...
-
.htaccessにphp_valueが使用できな
-
データーをエンコード
-
別PHPファイルに変数を渡す
-
エンコーディングについて
-
VB.NETでフリーメールアドレス...
-
.phpと.incファイルの違いはな...
-
URLが.PHPってどういう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
違法アップロードについて
-
「クラウドにアップロード」」...
-
youtubeに音声のみのmp4ファイ...
-
ファイルをGET送信でアップロー...
-
FTPClientで転送結果(OKかFAIL)
-
ftpでアップロードが出来ない
-
php,file_get_contentsの結果が...
-
unlinkでどうしてもファイルが...
-
DUMPした巨大SQLファイルをイン...
-
FTP接続の例外処理
-
PHPでxmlをAPIに送信する方法(P...
-
ファイルのアップロードがどう...
-
SmartyでHTMLソースの変更が反...
-
one drive のアップロード失敗...
-
BASP21のFTPで日本語ファイル名...
-
ファイルアップロードしたもの...
-
movabletypeでPDFファイルをア...
-
$filePath = './user_img/' . $...
-
画面遷移させずに、選択画像フ...
おすすめ情報
今「curl_getinfo($curl)」内容を出力したところ
[upload_content_length]が「float 1257」と表示されました。
これはXMLは正常に送信されてるということなのでしょうか。