FEDEX Ship API は特定のエラーに関する圧縮された情報を返します
P粉549986089
P粉549986089 2023-09-01 15:04:12
0
1
490
<p>Check Rates API を使用して Fedex API を実装しており、Ship API を使用してラベルを作成できます。 どちらもサンドボックスで正常に動作したため、ラベルの認定を取得して公開しました。 API は JSON を返す必要があります。ライブおよびサンドボックスでは、cURL を使用した API 呼び出しが非 JSON 応答を返す場合があります。 OAuth を使用したり、レート API 呼び出しをチェックしたりして、適切な JSON 応答を取得することに問題が生じることはありません。ただし、Ship API は適切な JSON を返すことができますが、圧縮された応答を返すこともあります。 </p> <p>これは私のカールリクエストです。 </p> <pre class="brush:php;toolbar:false;">function fedexRequest($endpoint, $post, $header = null) { //$ch =curl_init('https://apis-sandbox.fedex.com/' . $endpoint); // サンドボックス $ch =curl_init('https://apis.fedex.com/' . $endpoint); // ライブ curl_setopt_array($ch, [ CURLOPT_SSL_VERIFYPEER => true、CURLOPT_SSL_VERIFYHOST => 2、 CURLOPT_RETURTRANSFER => true、CURLOPT_FOLLOWLOCATION => true、 CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_POSTFIELDS => $post, ]); if ($header)curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 戻りcurl_exec($ch); }</pre> <p>このコードを使用して JSON と圧縮された応答を取得しました。 $post は、私が送信する JSON ペイロードです。スポイラー警告!通常、エラーはペイロード内の何かの詳細です。最初の間違いは、重量が 20 ポンドを超える商品に対して PackagingType = FEDEX_PAK を設定することです。もう 1 つのアプローチは、サイズ単位に IN の代わりに CM を使用することです。 </p> <p>Fedex Web サービス サポートへの電話では、非 JSON エラー応答の診断が困難です。応答はブラウザ内のコードのようになります: 黒ダイヤモンド vs 白?ランダムなスペース、文字、数字。 </p> <p>私のアカウントの API 呼び出しを見て何を見たのかを正確に教えてくれた最初の人、エラーの原因と解決策を教えてくれて、セットアップを実装した後にリアルタイムで私の優れたタグを確認してくれた人は賞賛されます。できれば彼から直接電話を返してもらえると思います。今日も何回かサポートに電話しましたが、同じ診断サポートを提供できる人はいませんでした。最後のメッセージは、圧縮された応答を受信して​​いるため、それに対処することを示しています。彼らのマネージャーは、圧縮された応答を引き起こしているのは私のコードであると言ったと言いました。 </p> <p>これは混乱を招くもので、サンドボックス内では適切な JSON 応答にエラーが確認され、エンド ユーザーに合わせて適切に解析するメソッドを構築します。これらのコード応答も見られます。これはサンドボックスの既知のバグだと思っていましたが、どうやらバグの一部は潰されていたようです。 </p> <p>そこで、いくつか質問があります。</p> <p>圧縮は私の cURL リクエストによって引き起こされたものですか? </p> <p>リクエストに CURLOPT_ENCODING を設定すると、これらのレスポンスはより適切に処理されますか? </p> <p>圧縮された応答を受け取った場合、それを解凍して実際のエラー コードを取得するには、gzread または ZipArchive が最適な方法ですか?そこにあるとしますか? </p>
P粉549986089
P粉549986089

全員に返信(1)
P粉919464207

Fedex への cURL リクエストは、圧縮応答と非圧縮応答の両方を返すことができるようです。 CURLOPT_ENCODING => "" を cURL setopt 配列に追加すると、gzip 応答が自動的に解凍されます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート