@@ -39,10 +39,13 @@ public function __construct(HttpClientInterface $client = null, History $history
3939 parent ::__construct ([], $ history , $ cookieJar );
4040 }
4141
42+ /**
43+ * @param Request $request
44+ */
4245 protected function doRequest ($ request ): Response
4346 {
4447 $ headers = $ this ->getHeaders ($ request );
45- [$ body , $ extraHeaders ] = $ this ->getBodyAndExtraHeaders ($ request );
48+ [$ body , $ extraHeaders ] = $ this ->getBodyAndExtraHeaders ($ request, $ headers );
4649
4750 $ response = $ this ->client ->request ($ request ->getMethod (), $ request ->getUri (), [
4851 'headers ' => array_merge ($ headers , $ extraHeaders ),
@@ -56,7 +59,7 @@ protected function doRequest($request): Response
5659 /**
5760 * @return array [$body, $headers]
5861 */
59- private function getBodyAndExtraHeaders (Request $ request ): array
62+ private function getBodyAndExtraHeaders (Request $ request, array $ headers ): array
6063 {
6164 if (\in_array ($ request ->getMethod (), ['GET ' , 'HEAD ' ])) {
6265 return ['' , []];
@@ -67,6 +70,10 @@ private function getBodyAndExtraHeaders(Request $request): array
6770 }
6871
6972 if (null !== $ content = $ request ->getContent ()) {
73+ if (isset ($ headers ['content-type ' ])) {
74+ return [$ content , []];
75+ }
76+
7077 $ part = new TextPart ($ content , 'utf-8 ' , 'plain ' , '8bit ' );
7178
7279 return [$ part ->bodyToString (), $ part ->getPreparedHeaders ()->toArray ()];
0 commit comments