I've been trying to send a POST request using HttpClient without a body using the PostAsync method. However, to my utter bewildement, the request is getting sent as a GET and not a POST.

Naturally, the request fails with a 405 Method Not Allowed becase the server doesn't allow GET.
Code sample:
var response = await new HttpClient().PostAsync("https://api.creativecommons.engineering/v1/auth_tokens/token?client_id=adsf&client_secret=asdf&grant_type=client_credentials", null);
Console.WriteLine(response.RequestMessage);
Produces:
Method: GET, RequestUri: 'https://api.creativecommons.engineering/v1/auth_tokens/token/?client_id=adsf&client_secret=asdf&grant_type=client_credentials', Version: 1.1
Example in .NET Fiddle
I've also tried using Flurl, but lead to the same result (I am guessing it is using HttpClient under the hood).
Any ideas why PostAsync is sending the request as a GET rather than POST?
This question got quite a bit of hate without offering an ounce of constructive criticism... Well done StackOverflow, really well done, so much for being more welcoming...
If you come across a similar issue, here are the three things to look for:
RequestMessage. This may be obvious in some cases, but in my case, the redirect involved adding a single / not something easily visible in the debugger window!https://api.creativecommons.engineering/v1/auth_tokens/token?client_id=adsf&client_secret=asdf&grant_type=client_credentials
https://api.creativecommons.engineering/v1/auth_tokens/token/?client_id=adsf&client_secret=asdf&grant_type=client_credentials
^
I posted null to that body, looks like it is throwing a 405 and returning some information to look into. I believe the display of "GET" is deceiving.
EDIT: Ok, so to revise:
First the post executes and receives a 301 from the server.

Followed by a redirect to another endpoint (as a GET) with the result of 405. Thus, the net result of your request manifested as a GET with a 405. My mistake.

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With