From 32d9c56c27d99831a56b10f5b1e69996ebe505cd Mon Sep 17 00:00:00 2001 From: Bill Pirkle Date: Wed, 12 Dec 2018 18:11:27 -0600 Subject: [PATCH] Fix guzzle InvalidArgumentException when body is passed as an array The postBody option to GuzzleHttpRequest can be passed as an array or as a string. We were previously handling the array case incorrectly. Bug: T211806 Change-Id: I8f40b9de9d40a9361eb45103608bf3aaa943bf73 --- includes/http/GuzzleHttpRequest.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/includes/http/GuzzleHttpRequest.php b/includes/http/GuzzleHttpRequest.php index 5654a715aa..db8a09b970 100644 --- a/includes/http/GuzzleHttpRequest.php +++ b/includes/http/GuzzleHttpRequest.php @@ -91,7 +91,11 @@ class GuzzleHttpRequest extends MWHttpRequest { if ( $this->method == 'POST' ) { $postData = $this->postData; - $this->guzzleOptions['body'] = $postData; + if ( is_array( $postData ) ) { + $this->guzzleOptions['form_params'] = $postData; + } else { + $this->guzzleOptions['body'] = $postData; + } // Suppress 'Expect: 100-continue' header, as some servers // will reject it with a 417 and Curl won't auto retry -- 2.20.1