Я использую Guzzle 5.3 через Guzzle Services (через https://github.com/ticketevolution/ticketevolution-php), чтобы попытаться выполнить POST в конечную точку API с телом JSON, которое включает PDF-файл, закодированный как base64. Когда тело меньше ~ 1 МБ, все работает нормально. Когда тело больше, кажется, что тело никогда не отправляется.
Я тестировал это с заголовком Expect: 100 и без него, и, похоже, это не имеет значения.
Я тестировал с Transfer-Encoding: chunked, но поскольку API требуется все тело POST для аутентификации с использованием chunked, это не работает.
Мы протестировали с балансировкой нагрузки между клиентом и серверами приложений и без нее.
Из всего, что мы можем сказать, тело просто не отправляется, когда оно больше ~ 1 МБ.
У кого-нибудь есть идеи, как заставить Guzzle 5.3 отправлять тело, даже если оно больше 1 МБ?
Ниже приведен вывод журнала
[2015-09-01 16:15:43] TEvoAPIClientLogger.CRITICAL:
>>>>>>>>
POST /v9/orders/2100732/deliver_etickets HTTP/1.1
Host: api.ticketevolution.com
User-Agent: ticketevolution-php/3.0.0dev Guzzle/5.3.0 curl/7.44.0 PHP/5.5.28
Content-Type: application/json
Content-Length: 1387036
X-Token: b47dsd8c0ab80a1e2bc24sc341415a2f
X-Signature: SwBOkdUOqG3SDtjVwi2etosdP+gppwuV5dCq8yMw9lM=
{"etickets":[{"item_id":1513651,"eticket":"JVBERi0xLjQKJeLjz9MKNCAwIG9iaiBbXQplb… [a whole lot of base64 snipped] …NwolJUVPRgo="}]}
<<<<<<<< --------
cURL error 52: Empty reply from server