Use a protocol analyser for this work (such as Wireshark or Sniffer)
Examine a working request and what is sent from a header and content perspective
Examine a non-working request for what is sent from a header and contect perspective
Compare the two. You should find the source of your problem
You could also use an HTTP proxy to capture the items, such as Fiddler or Charles Proxy. This path might be easier to pull off given the HTTPS communication between your client and your host in this case. Dump the two captures to files and then use a file comparison tool to examine the differences in your headers and body. It should become quite apparent what is missing or not quite correct.