1

次のコードを見てください。

<form id='myform' name='myform' action='http://www.xxx.xom' method='post' accept-charset='UTF-8'>
<input type='input' name='xmlData' value='<?xml version="1.0"?>
<order_zip>23222</order_zip>
<shipping_id>15</shipping_id>
<products><product> <product_id>230</product_id> <quantity>40</quantity></product></products>'>
</form>

フォームデータを送信すると、次のような応答がありました: OK

ただし、バックエンド (バックグラウンド) で行う必要があります。

だから私のコードは次のとおりです。

set xmlhttp = server.createobject("MSXML2.XMLHTTP")
xmlhttp.Open "POST",URL,False
xmlhttp.SetRequestHeader "Content-Type","text/xml;charset=UTF-8"
xmlhttp.Send xmlstring
Response.write(xmlhttp.response.text)

今回はエラー応答が表示されます: No input XML data 技術者は php no asp しか知らないので、コードで何を変更する必要があるかわかりません。

php コードのサンプルは次のとおりです。

<?php
  $xml['xmlData'] .= '<order_zip>187654</order_zip>';
  $xml['xmlData'] .= '<shipping_id>3</shipping_id>';
  $xml['xmlData'] .= '<products>';
  $xml['xmlData'] .= '<product><product_id>458</product_id><quantity>11</quantity></product>';

  $connection = curl_init();
  curl_setopt($connection, CURLOPT_URL, "http://api.xml.com/xml/sendOrder");
  curl_setopt($connection, CURLOPT_SSL_VERIFYPEER, 0);
  curl_setopt($connection, CURLOPT_SSL_VERIFYHOST, 0);
  curl_setopt($connection, CURLOPT_POST, 1);
  curl_setopt($connection, CURLOPT_POSTFIELDS, $xml);
  curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);
  set_time_limit(108000);
  $strResponse = curl_exec($connection);
  if(curl_errno($connection)) {
  print 'Curl error: ' . curl_error($connection);
  }
  curl_close($connection);
  print_r($strResponse);
  }
  ?>

バックグラウンド/バックエンドで実行するフォームが必要なだけなので、適切なコードを取得できれば幸いです。

ありがとうございました

4

1 に答える 1

0

次のようなことを試してください:

xmlstring = "<root>" & _
            "  <order_zip>23222</order_zip>" & _
            "  <shipping_id>15</shipping_id>" & _
            "  <products>" & _
            "    <product>" & _
            "      <product_id>230</product_id>" & _
            "      <quantity>40</quantity>" & _
            "    </product>" & _
            "  </products>" & _
            "</root>"

set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "POST", URL, False
xmlhttp.SetRequestHeader "Content-Type","application/x-www-form-urlencoded"
xmlhttp.Send xmlstring
Response.write xmlhttp.responseText

XML にルート要素を追加しました。そうしないと、有効な XML ドキュメントになりません。

同じ件名に関する次の KB 記事も参照してください: http://support.microsoft.com/kb/290591

于 2012-10-12T23:00:40.207 に答える