Zend Http クライアントを使用して外部サービスを呼び出しています。このサービスを使用すると、ファイルをストレージ システムにアップロードできます。関連するパラメーター (ユーザー ID など) をクエリ文字列で送信する必要があり、ファイルのアップロード コンテンツはコンテンツ タイプが "application/zip" の POST 本文で送信する必要があります (私は zip ファイルを送信しています)。いろいろ入ってる)。
これを行うには、zend クライアントの setParameterGet() 関数を使用してクエリ文字列にパラメーターを設定します。次に、setFileUpload() 関数を使用してファイル アップロード コンテンツを設定します。
$this->client->setFileUpload($zipFilePath, 'content', null, 'application/zip');
ただし、サービスは、「multipart/form-data」である間違ったコンテンツ タイプを送信していると言っています。
以下は、Zend クライアントがサービスに送信している未加工のヘッダーです (機密情報のビットを削除し、[] 角かっこで囲まれた項目名に置き換えていることに注意してください)。
POST https://[ServiceURL]?cmd=[COMMAND]&enrollmentid=[ENROLLMENTID]&itemid=[ITEMID]
HTTP/1.1
ホスト: [HOST] Accept-encoding: gzip、deflate
ユーザーエージェント: Zend_Http_Client Cookie:
AZT=9cMFAIBgG-eM1K|Bw7Qxlw7pBuPJwm0PCHryD;
コンテンツ タイプ: マルチパート/フォーム データ。境界=---ZENDHTTPCLIENT-05535ba63b5130ab41d9c75859f678d8
コンテンツの長さ: 2967
-----ZENDHTTPCLIENT-05535ba63b5130ab41d9c75859f678d8
Content-Disposition: フォームデータ。名前="コンテンツ"; ファイル名="agilixContent.zip"
コンテンツ タイプ: アプリケーション/zip
[RAWファイルデータはこちら]
つまり、基本的に、POST コンテンツ タイプ ヘッダーを設定したにもかかわらず、値が「multipart/form-data」の別のコンテンツ タイプ ヘッダーがあるため、外部サービスから間違ったコンテンツ タイプを送信したことが通知されます。そのコンテンツヘッダーを変更/削除しようとしましたが、役に立ちませんでした。リクエストにこれら 2 つの重複した「コンテンツ タイプ」ヘッダーが含まれないように、そのヘッダーを削除するにはどうすればよいですか?