Revert "Adjust PUT method behavior to POST one for default content type in WebCmdlets" (#21049)

This commit is contained in:
Steve Lee
2024-02-26 11:51:12 -08:00
committed by GitHub
parent a880377d8a
commit 05ed2f270c
2 changed files with 7 additions and 16 deletions
@@ -1172,7 +1172,7 @@ namespace Microsoft.PowerShell.Commands
{
WebSession.ContentHeaders[HttpKnownHeaderNames.ContentType] = ContentType;
}
else if (request.Method == HttpMethod.Post || request.Method == HttpMethod.Put)
else if (request.Method == HttpMethod.Post)
{
// Win8:545310 Invoke-WebRequest does not properly set MIME type for POST
WebSession.ContentHeaders.TryGetValue(HttpKnownHeaderNames.ContentType, out string contentType);
@@ -795,14 +795,9 @@ Describe "Invoke-WebRequest tests" -Tags "Feature", "RequireAdminOnWindows" {
($result.Output.Content | ConvertFrom-Json).method | Should -Be "TEST"
}
It "Validate Invoke-WebRequest default ContentType for CustomMethod <method>" -TestCases @(
@{method = "POST"}
@{method = "PUT"}
) {
param($method)
$uri = Get-WebListenerUrl -Test $method
$command = "Invoke-WebRequest -Uri '$uri' -CustomMethod $method -Body 'testparam=testvalue'"
It "Validate Invoke-WebRequest default ContentType for CustomMethod POST" {
$uri = Get-WebListenerUrl -Test 'Post'
$command = "Invoke-WebRequest -Uri '$uri' -CustomMethod POST -Body 'testparam=testvalue'"
$result = ExecuteWebCommand -command $command
$jsonResult = $result.Output.Content | ConvertFrom-Json
$jsonResult.form.testparam | Should -Be "testvalue"
@@ -2845,13 +2840,9 @@ Describe "Invoke-RestMethod tests" -Tags "Feature", "RequireAdminOnWindows" {
$result.Output.method | Should -Be "TEST"
}
It "Validate Invoke-RestMethod default ContentType for CustomMethod <method>" -TestCases @(
@{method = "POST"}
@{method = "PUT"}
) {
param($method)
$uri = Get-WebListenerUrl -Test $method
$command = "Invoke-RestMethod -Uri '$uri' -CustomMethod $method -Body 'testparam=testvalue'"
It "Validate Invoke-RestMethod default ContentType for CustomMethod POST" {
$uri = Get-WebListenerUrl -Test 'Post'
$command = "Invoke-RestMethod -Uri '$uri' -CustomMethod POST -Body 'testparam=testvalue'"
$result = ExecuteWebCommand -command $command
$result.Output.form.testparam | Should -Be "testvalue"
$result.Output.Headers.'Content-Type' | Should -Be "application/x-www-form-urlencoded"