proxy request: forward json content type and parameters

instead of always trying to encode them as x-www-form-urlencoded

Acked-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak 2023-06-06 15:08:48 +02:00 committed by Wolfgang Bumiller
parent ded13125c2
commit f398a3d94b

View File

@ -745,11 +745,16 @@ sub proxy_request {
my $content;
if ($method eq 'POST' || $method eq 'PUT') {
if ($reqstate->{request}->header('Content-Type') =~ 'application/json') {
$headers->{'Content-Type'} = 'application/json';
$content = encode_json($params);
} else {
$headers->{'Content-Type'} = 'application/x-www-form-urlencoded';
# use URI object to format application/x-www-form-urlencoded content.
my $url = URI->new('http:');
$url->query_form(%$params);
$content = $url->query;
}
if (defined($content)) {
$headers->{'Content-Length'} = length($content);
}