0
私はGuzzleで新しく、PDFファイルに署名するためのRESTリクエストを作成しようとしています。プロバイダは言う:guzzle、マルチパート/フォームデータでコンテンツタイプを強制する方法
- あなたはリクエストが送信されたファイルは、アプリケーション/ octet-でなければならないPOSTリクエスト
- MIMEタイプがマルチパートでなければなりません/フォームデータ
- でなければならないBASIC認証
- を使用する必要がありますストリームとその名前が送信されたデータは、アプリケーション/ JSONとその名前でなければなりません「ファイル」
- は「データ」
システムは、ARを返すべきであるべきです署名されたPDFファイルを含み、タイプがアプリケーション/オクテットストリームである
これは私がGuzzleでテストしたコードですが、プロバイダはapplication/pdfで送信されたMIMEタイプを示しています。 PDFファイルのMIMEタイプを「強制」にするにはどうすればよいですか?
$client = new Client([
'auth' => ['login', 'password'],
'debug' => true,
'curl' => [
CURLOPT_PROXY => '192.168.1.232',
CURLOPT_PROXYPORT => '8080',
CURLOPT_PROXYUSERPWD => 'username:password',
],
]);
$boundary = 'my_custom_boundary';
$multipart = [
[
'name' => 'data',
'contents' => "{'nomDocument':'documentTest.pdf','externalid':'123456'}",
'Content-Type' => 'application/json'
],
[
'name' => 'file',
'contents' => fopen('documentTest.pdf', 'r'),
'Content-Type' => 'application/octet-stream'
],
];
$params = [
'headers' => [
'Connection' => 'close',
'Content-Type' => 'multipart/form-data; boundary='.$boundary,
],
'body' => new GuzzleHttp\Psr7\MultipartStream($multipart, $boundary),
];
try{
$response = $client->request('POST', 'https://server.com/api/sendDocument', $params);
} catch (RequestException $e) {
echo Psr7\str($e->getRequest());
if ($e->hasResponse()) {
echo Psr7\str($e->getResponse());
}
}
ありがとうございました。