2017-09-22 26 views
0

私は午前中にというAPIを使ってアップロードされたXML文字列をという形でアップロードしましたが、私の注文は送信されますが、試してみても単純に機能しません。PHPとCurlで投稿する

マイURL:

$url = "http://example.com/SubmitOrder?apiKey=ABC123&clientID=MYId&orderXml=".$xml; 

$xmlは私のxml詳細は、すでにフォーマット済みです。

私はその後、私のカール部分にこれを入れて:「:オブジェクトを作成できませんエラー」と私は私の詳細は提出されていないことがわかります

$curl = curl_init(); 
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_URL   => $url 
)); 
$resp = curl_exec($curl); 

$xml1=simplexml_load_string($resp) or die("Error: Cannot create object"); 

print_r($xml1); 
echo "Submitted"; 

私が得る応答があります。

どこが間違っていますか?

多くのありがとうございます。

+0

一時的な単純なデバッグ行を追加して、リクエストから実際に何が戻ってくるかを確認しましたか?あなたの 'curl_exec()'コールの後に 'var_dump($ resp);'? –

+0

はい、私はそこにこれを持っていましたが、空白に戻ってきていました。これをさらに凌駕し、URLとAPIキーのエンコーディングに至りました。 APIキーに特殊文字があり、送信されたときに正しくエンコードされず、したがって認証されませんでした。簡単なこと!!!みなさんのご協力をよろしくお願い申し上げます。 – Wilkesy

答えて

0

このコード例では、応答データを確認してデータを作成できます。

<?php 
$url = 'https://www.w3schools.com/xml/note.xml'; 

$resp = file_get_contents($url); 

if (resp) { 
    $string = simplexml_load_string($resp); 
    var_dump($movies); 
} 

しかし、メソッドのデータを取得したい場合は、これを試してください。

<?php 

$html_brand = 'https://www.w3schools.com/xml/note.xml'; 
$ch = curl_init(); 

$options = array(
    CURLOPT_URL   => $html_brand, 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_HEADER   => true, 
    CURLOPT_FOLLOWLOCATION => true, 
    CURLOPT_ENCODING  => "", 
    CURLOPT_AUTOREFERER => true, 
    CURLOPT_CONNECTTIMEOUT => 120, 
    CURLOPT_TIMEOUT  => 120, 
    CURLOPT_MAXREDIRS  => 10, 
); 
curl_setopt_array($ch, $options); 
$response = curl_exec($ch); 
switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) { 
    case 200: # OK 
     break; 
    default: 
     echo 'Status code HTTP: ', $http_code, "\n"; 
} 

var_dump($response); 
curl_close($ch); 
die(); 

データを確認してください。また、あなたの応答ステータスコードを確認してください。

関連する問題