私は「インターフェース」を開発してきました。これは私のクライアントであり、APIを呼び出してXML構造を渡し、別のXMLを受け取ることができます。
私はルートやメソッドなどを作成し、cURLを使用してデータを投稿しようとしています。すべてが魅力のように機能します。
しかし
....Content-Type: text/xml; charset=utf-8
リクエストのヘッダーに突然、POST
変数に追加すると、もう何もありません。
ここで何が起こっているのかについて何か考えはありますか?
ノート
明らかに私はコードを追加しません。それは非常に単純で、ルート(標準のsymfony2ルート)、メソッド(ダンプPOST)、およびxmlを含む呼び出しで構成されています。
これは呼び出しのコードです
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, 'xxxxxxx:yyyyyy'); //where xxxxxx:yyyyy is setted but now censored
curl_setopt($ch, CURLOPT_URL, $this->url); // set url to post to
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml; charset=utf-8")); //without this all works
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->message);
このようなものはどこに$message
ありますか(単なる例)
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<Message Option="1">Option 1</Message>
</ROOT>
数日間のデバッグや頭痛などの後で、私は自分の一日を作る何かを見つけましたが、それは私には奇妙に聞こえます。
着信リクエストをログに記録すると、何も投稿されていないようです(xmlを投稿しても)。
ただし$logger->debug(__CLASS__.' '.$this->get("request")->getContent());
、すべての受信リクエストをログに記録する前に追加すると、次のリクエストは、投稿するすべてのパラメーターとともにログに記録されます。
これは一種の「遅延読み込み」のように聞こえます。したがって、$this->get("request")->getContent()
コントローラーを呼び出すことで、要求しているものを取得できます(xmlで投稿されたパラメーター)
誰かが私を理解するのを手伝ってもらえますか?