Title: WebCmdlets SetRequestContent wrong logic? · Issue #18973 · PowerShell/PowerShell · GitHub
Open Graph Title: WebCmdlets SetRequestContent wrong logic? · Issue #18973 · PowerShell/PowerShell
X Title: WebCmdlets SetRequestContent wrong logic? · Issue #18973 · PowerShell/PowerShell
Description: Prerequisites Write a descriptive title. Make sure you are able to repro it on the latest released version Search the existing issues. Refer to the FAQ. Refer to Differences between Windows PowerShell 5.1 and PowerShell. Steps to reprodu...
Open Graph Description: Prerequisites Write a descriptive title. Make sure you are able to repro it on the latest released version Search the existing issues. Refer to the FAQ. Refer to Differences between Windows PowerSh...
X Description: Prerequisites Write a descriptive title. Make sure you are able to repro it on the latest released version Search the existing issues. Refer to the FAQ. Refer to Differences between Windows PowerSh...
Opengraph URL: https://github.com/PowerShell/PowerShell/issues/18973
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"WebCmdlets SetRequestContent wrong logic?","articleBody":"### Prerequisites\n\n- [X] Write a descriptive title.\n- [X] Make sure you are able to repro it on the [latest released version](https://github.com/PowerShell/PowerShell/releases)\n- [X] Search the existing issues.\n- [X] Refer to the [FAQ](https://github.com/PowerShell/PowerShell/blob/master/docs/FAQ.md).\n- [X] Refer to [Differences between Windows PowerShell 5.1 and PowerShell](https://docs.microsoft.com/powershell/scripting/whats-new/differences-from-windows-powershell).\n\n### Steps to reproduce\n\nI was cleaning up the code of WebCmdlets #18964 and I noticed some code that seems incorrect. (WebRequestPSCmdlet.Common.cs lines 1114-1134)\r\n\r\n```cs\r\nif (content is FormObject form)\r\n {\r\n SetRequestContent(request, form.Fields);\r\n }\r\n else if (content is IDictionary dictionary \u0026\u0026 request.Method != HttpMethod.Get)\r\n {\r\n SetRequestContent(request, dictionary);\r\n }\r\n else if (content is XmlNode xmlNode)\r\n {\r\n SetRequestContent(request, xmlNode);\r\n }\r\n else if (content is Stream stream)\r\n {\r\n SetRequestContent(request, stream);\r\n }\r\n else if (content is byte[] bytes)\r\n {\r\n SetRequestContent(request, bytes);\r\n }\r\n else if (content is MultipartFormDataContent multipartFormDataContent)\r\n```\r\n\n\n### Expected behavior\n\n```console\n`else if (content is IDictionary dictionary \u0026\u0026 request.Method != HttpMethod.Get)`\r\n\r\nIt seems this line doesn't set the request.Content if the method is GET and the body is a dictionary\n```\n\n\n### Actual behavior\n\n```console\nI think we should have a consistent behaviour for other type of bodys, for form and infile\r\n\r\nShould we always set the request.Content, or never do it?\n```\n\n\n### Error details\n\n_No response_\n\n### Environment data\n\n```powershell\nName Value\r\n---- -----\r\nPSVersion 7.3.1\r\nPSEdition Core\r\nGitCommitId 7.3.1\r\nOS Microsoft Windows 10.0.19045\r\nPlatform Win32NT\r\nPSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}\r\nPSRemotingProtocolVersion 2.3\r\nSerializationVersion 1.1.0.1\r\nWSManStackVersion 3.0\n```\n\n\n### Visuals\n\n_No response_","author":{"url":"https://github.com/CarloToso","@type":"Person","name":"CarloToso"},"datePublished":"2023-01-19T00:54:35.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/18973/PowerShell/issues/18973"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:b735236b-8b42-1dbe-d0e9-0b9d2b023032 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | AAE0:27C161:677679:942123:6A54923A |
| html-safe-nonce | 753aea583cc0959d19e95310d0d10b0544a15a174e845b54d03a6594e38b5c41 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBQUUwOjI3QzE2MTo2Nzc2Nzk6OTQyMTIzOjZBNTQ5MjNBIiwidmlzaXRvcl9pZCI6IjQ5NTI2NjAyNzgzODUwODcwMzQiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 57a5816d1b90c27581c9a97fd82e7704bbf73eabb2845d624e62bed03db640cc |
| hovercard-subject-tag | issue:1548352907 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/PowerShell/PowerShell/18973/issue_layout |
| twitter:image | https://opengraph.githubassets.com/df92c128ad2a0554ea68b920c6b3cb3a65376d65418b50f5114b233d70db2a85/PowerShell/PowerShell/issues/18973 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/df92c128ad2a0554ea68b920c6b3cb3a65376d65418b50f5114b233d70db2a85/PowerShell/PowerShell/issues/18973 |
| og:image:alt | Prerequisites Write a descriptive title. Make sure you are able to repro it on the latest released version Search the existing issues. Refer to the FAQ. Refer to Differences between Windows PowerSh... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | CarloToso |
| hostname | github.com |
| expected-hostname | github.com |
| None | b9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb |
| turbo-cache-control | no-preview |
| go-import | github.com/PowerShell/PowerShell git https://github.com/PowerShell/PowerShell.git |
| octolytics-dimension-user_id | 11524380 |
| octolytics-dimension-user_login | PowerShell |
| octolytics-dimension-repository_id | 49609581 |
| octolytics-dimension-repository_nwo | PowerShell/PowerShell |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 49609581 |
| octolytics-dimension-repository_network_root_nwo | PowerShell/PowerShell |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | f8cfff6384f62259baea531c7f58bc7040f8dd92 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width