まえがき
今日、正確に言うと数日前に他部署のインターフェースに接続していたので、前の人がカプセル化したcurl関数を調整しました。奇妙なのは、post を使用してリクエストを行うときに、コマンド ラインでのcurl -d "parms" url が成功することがあるということです。 「祖先」curl 関数が間違って使用されている可能性はありますか? ?
テキスト
原因のトラブルシューティング
コマンドラインは動作するのに、関数を呼び出すと動作しないため、非常に奇妙です。
考えられる理由:
1. パラメーターまたは URL が間違っています。s などが欠落しています。修正後、削除されます
2. カプセル化されたcurl関数に何か問題がありますか? -------これをさまざまな場所から呼び出すことを考えると、問題はないはずですが、最終的には、この関数に何か問題があると感じました。突然、パラメータを URL エンコーディングするマーカーの 1 つが目に入りました。試してみようと思いました、それは実際に機能します。
原理について話しましょう
PHP マニュアルを確認した後、次のことがわかりました: CURLOPT_POSTFIELDS のパラメータを設定するとき、このパラメータには配列パラメータと URLencoded パラメータの両方を渡すことができると記載されていますが、それでも違いがあります: 値が配列の場合, コンテンツ - Type ヘッダーは multipart/form-data に設定されます。これだよ。その結果、インターフェイス プロバイダーはパラメーターを一貫して受信できなくなります。
').addClass('事前番号付け').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });上記は Pitfall シリーズで PHP のカールを紹介しており、関連する内容も含めて PHP チュートリアルに興味のある友人に役立つことを願っています。