【メモ】PHPでWebAPIを自作する際にXMLで詰まった話

  投稿日:2016年8月2日   更新日:  - 開発, PHP ,

cUrl_header

どうも、ゴエです。

今回は「XMLかなんかでPOSTして処理するWebAPIを自作すればいいじゃん」っと
かるーい考えで作ろうとしたら詰まった話です。

ことの発端

最近「データを自動で別のサーバーに送れるようにする」ものをPHPで作る機会があり、「じゃぁ、データをXMLにしてcUrlでPOSTすればいいじゃんww」と
かる~い考えでいました。

元々、とあるシステムのAPIを使ってXMLデータをPOSTする処理とかを作った事があったので「受け口さえ作れば簡単じゃんw」と思って鼻歌交じりでコーディングしてたら思いの他詰まったw

簡易プログラムの作成~そして詰まる

cUrlで実行する用のWebAPIを元々自作したことが無かったので、とりあえず簡単にデータをdumpするだけのプログラムをコーディング。

ここでふっと疑問点が「POSTのキーって何になるだ?」
通常だったら「$_POST[hoge] = hogehoge」って形で
キーを設定するんだけど今回はcUrlのCURLOPT_POSTFIELDSオプションにそのままXMLを突っ込む予定なのでキーがどうなるかわからなかったw

とりあえず、キーを指定せず[var_dump($_POST);]で出すように作る事に。
●WebAPIコード

●実行プログラム

そして、デバッグを兼ねて実行・・・・・

●結果

・・・・・・何だこりゃ・・・・。
なんかこっちが想定していたデータの出方と違う・・・・・(´・ω・`)

無事解決

データの出方が違っていたので原因を調査。
そしてやっと見つけたw

XMLをPOSTで送る/受け取る|明日から本気出す

どうやら、今回の様なやり方でXMLをPOSTすると配列としてでは無く、$_POSTという変数としてデータが入ってくるようでした。
そのため、$_POSTでごにょごにょするのでは無く、以下のような「php://input」をfile_get_contentsを使って取る必要があるとの事。
なので早速プログラムを修正

そして再度実行

(∩´∀`)∩ワーイ 出たー!

まとめ

今回受信側を初めて作るということもあってか思いの外手こずったw
ぐぐってもやっぱり送信側の方法しか見当たらなったので調べるのも大変だったww
次回も開発する機会があったら忘れないようにメモしておこうw

-開発, PHP, -,


  コメント

コメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

【PHP】XAMPPでSSL環境構築

ローカル環境内でPHPの開発を行えるXAMPPでSSL(https://~)を使った開発が必要になったのでメモメモ。 参考サイト[XAMPP] SSL + バーチャルホストの設定|うつしよ このサイト …

【WordPress】WordPressを4.3にしたら真っ白になった話

目次1 事の発端2 原因3 対応4 まとまってないまとめ WordPressをバージョンアップしたら真っ白になったので 今回に限るかもしれないけど対応方法をメモメモ。 事の発端 久々にブログの管理画面 …

【CSV】大量のCSVを「コマンド」1つで簡単にまとめちゃう方法

どうもこんにちは。 ゴエです。 12月がかなり忙しかったのでブログ全然更新出来んかったwww (そもそもそんなに更新していな(ry) さて、仕事の関係上最近CSVファイルを見る機会が増えたんだけど、 …

【WordPress】タイトルの文字数をjQueryでカウントする方法

目次1 はじめに2 早速やってみた3 まとめ はじめに どうもこんにちは、ゴエです。 ところで皆さん、記事のタイトルって気にしてますか? やっぱりブログをやってく上で結構タイトルって重要何ですよねw …

さくらレンタルサーバー初期ドメイン設定

このブログを設置するにあたって、さくらレンタルサーバーを借りて構築して自分で取得したドメインを使ってたんだけど、 ココ最近になって、さくらレンタルサーバーからもらったデフォルトのドメインの存在を思い出 …