У меня есть Java API, где есть логическая проверка, является ли HTTP-запрос составным:
if (request instanceof MultipartHttpServletRequest)
И у меня есть php-запрос, отправляемый со стороны клиента в API, я использую league oauth2-client , который использует Guzzle. Составной http-запрос создается со следующим кодом:
$fileslist = array();
$fileslist[] = array(
'name' => 'files',
'filename' => 'author.json',
'contents' => fopen('./author.json', 'r'),
'_filePath' => '/Bulk-Uploads/author.json'
);
$fileslist[] = array(
'name' => 'files',
'filename' => 'jkr.jpg',
'contents' => fopen('./jkr.jpg', 'r'),
'_filePath' => '/Bulk-Uploads/jkr.jpg'
);
$options = array();
$options['multipart'] = $fileslist;
$options['headers']['Authorization'] = 'bearer ' . $accessToken;
...
$request = $provider->getAuthenticatedRequest(
'POST',
$post_url,
$accessToken,
$options
);
Теперь проблема в том, что когда запрос php Guzzle попадает в API, он НЕ является экземпляром MultipartHttpServletRequest. И заголовки запроса содержат только:
host = localhost:8080
content-length = 0
user-agent = GuzzleHttp/6.3.3 curl/7.54.0 PHP/7.1.19
authorization = Bearer ....
authorization = bearer ....
, который НЕ включает заголовок типа содержимого. Но в документации Guzzle похоже, что она должна генерироваться автоматически, если задано $ options [multipart].
Я использовал это неправильно? Как я могу создать многоэлементный HTTP-запрос с помощью PHP, и Java распознает его как MultipartHttpServletRequest?
Спасибо!