2017-01-21 11 views
0

EPP XMLリクエストに問題があります。私は今かなりの時間のAPIからCommand Syntax Error応答を得ています。私は、最近、XMLが誤って受信され、途中で分割されていると回答した技術部門に連絡しています。どうしてか分かりません。POSTリクエストXMLが不正です

DOMDocumentクラスを使用してPHPからXMLをコンパイルします。私は__toString()を使ってすべてのXMLビルドメソッドを返します。これは$this->saveXML();を返すもので、ツリーを文字列としてダンプします。私はその後、POSTリクエストを送信します。それ以外の方法はうまくいきますが、これではありません。ここ

コード:

https://github.com/OssiPesonen/epp_depo

私が実際に使用して、私のXMLをダンプ:

header('Content-type: text/plain'); 
echo $xml; 
die(); 

そして、それは私を与えるたび:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> 
    <command> 
    <create> 
     <contact:create xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> 
     <contact:id>1</contact:id> 
     <contact:role>5</contact:role> 
     <contact:type>1</contact:type> 
     <contact:postalInfo type="loc"> 
      <contact:isfinnish>1</contact:isfinnish> 
      <contact:firstname>Essi</contact:firstname> 
      <contact:lastname>Esimerkki Oy</contact:lastname> 
      <contact:name>HR</contact:name> 
      <contact:org>Esimerkki Oy</contact:org> 
      <contact:birthDate>2005-04-03T00:00:00.0Z</contact:birthDate> 
      <contact:identity>123423A123F</contact:identity> 
      <contact:registernumber>20824760</contact:registernumber> 
      <contact:addr> 
      <contact:street>Test Street</contact:street> 
      <contact:pc>00000</contact:pc> 
      <contact:cc>FI</contact:cc> 
      <contact:city>City</contact:city> 
      </contact:addr> 
     </contact:postalInfo> 
     <contact:voice x="1234">+3584</contact:voice> 
     <contact:email>[email protected]</contact:email> 
     <contact:legalemail>[email protected]</contact:legalemail> 
     <contact:disclose flag="0"> 
      <contact:addr/> 
      <contact:email/> 
     </contact:disclose> 
     </contact:create> 
    </create> 
    <clTRID>E1144-588371f25ab80</clTRID> 
    </command> 
</epp> 

これは、不正な形式の見えません、 右?しかし、技術的なサポートは<contact:city>後に終了タグの前に分割されたことを、私に答えた:

contact:city> 
      <contact:sp>VA</contact:sp> 
      <contact:pc>20166-6503</contact:pc> 
      <contact:cc>US</contact:cc> 
      </contact:addr> 
     </contact:postalInfo> 
     <contact:voice x="1234">+3581231234</contact:voice> 
     <contact:fax>+04040as</contact:fax> 
     <contact:email>[email protected]</contact:email> 
     <contact:legalemail>[email protected]</contact:legalemail> 
     <contact:disclose flag="0"> 
      <contact:addr/> 
      <contact:email/> 
     </contact:disclose> 
     </contact:create> 
    </create> 
    <clTRID>E1144-5867f93f6503a</clTRID> 
    </command> 
</epp> 
05-04-03T22:00:00.0Z</contact:birthDate> 
      <contact:identity>010188-123A</contact:identity> 
      <contact:registernumber>123456-7</contact:registernumber> 
      <contact:addr> 
      <contact:street>123 Example Dr.</contact:street> 
      <contact:street></contact:street> 
      <contact:street></contact:street> 
      <contact:city>Dulles</ 

任意のアイデアをどのようにこれを引き起こす可能性がありますか?私はそれを見ることができないので。

編集

私のオプションを排出した後、私は見ることするのGithubにコードをアップロードしました。

https://github.com/OssiPesonen/epp_depo

+0

私はEPPのためにDOMDocumentを使用しています。 PHPやDOMDocumentの古いバージョンを使用していないことを確認してください。これはあなたの責任ではないかもしれません。また、コードではなくXMLだけを引用したので、これは部分的に役に立ちます。 –

+0

問題として何かを出し入れするために、XMLから名前空間* xmlns = "..." *を削除し、 。 ...または別のエラーメッセージが表示されることがあります。 – Paulb

+0

これは効果がありません。 – Rcls

答えて

0

まあ、答えは簡単だった、まだそれが解決策だ理由を私は理解できません。

私は基本的にsend()メソッドからのすべてのfailsafesを削除し、ちょうどこれを残して:

private function send($buffer) 
{ 
    if(fwrite($this->socket, $buffer)) { 
     return true; 
    } 

    return false; 
} 

私は実際にそれが前のもので、XML文字列をカットしたことか知っているが、この意志はありません私たちのプラットフォームのためにしてください。

関連する問題