0

まあuspsはリクエストxmlをに送信することを提案します

secure.shippingapis.com/ShippingAPI.dll?API=MerchandiseReturnV4&XML=

私はで与えられたサンプルXMLで試しました

https://www.usps.com/business/web-tools-apis/merchandise-return-service-labels-v10-2a.htm


$url="https://secure.shippingapis.com/ShippingAPI.dll";
$api="API=MerchandiseReturnV4&XML=";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $api . $xml);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$result = curl_exec($ch);
$error = curl_error($ch);
    echo result;

しかし、それは何も返さない.....

4

2 に答える 2

1

リクエストが API に近づいている場合、適切な予想されるレスポンスまたはエラーの詳細を含むエラー コードであるレスポンスが返されます。

適切な応答が得られない問題は、次のようなものである可能性があります。

  1. クエリ文字列に間違った XML が渡されました
  2. XML の一部の必須フィールドが欠落している
  3. 無効な Web ツール資格情報

正確なエラー コードと詳細を知るには、API サーバーから返された XML を解析する必要があります。

応答ストリームを取得し、ストリームをストリーム リーダーに読み取ることができます

string result = null;
using (HttpWebResponse response = httpWebRequest.GetResponse() as HttpWebResponse)
{
    StreamReader reader = new StreamReader(response.GetResponseStream());
    result = reader.ReadToEnd();
}

ただし、これを .Net MVC に実装しましたが、正確な問題を見つけるために有利なスタートを切るのに役立つ場合があります。

于 2014-03-25T11:53:40.273 に答える