Redirect of POST should not change to GET
The evolution-ews has a workaround for a libsoup bug about POST being switched to GET on redirect. It's in the code for years.
/* In violation of RFC2616, libsoup will change a POST request to
* a GET on receiving a 302 redirect. */
printf ("Working around libsoup bug with redirect\n");
g_object_set (msg, SOUP_MESSAGE_METHOD, "POST", NULL);
It is included also in the libsoup3. Maybe it's time to fix it.
I'd left the caller/library-user to ensure the data for the POST is properly set (which it is supposed to do that anyway already).