Thanks for the clarification. Unfortunately, we are unable to reproduce this problem and none of our clients reported anything like this before, so we are a bit in the dark here. So to be able to do something about this, we need to gather some additional information first.
Let's start by analyzing the log. This is what seems to be going on:
1. You issue a POST request to /<internalAddress>/<internalLink0>. The server accepts this and returns "200" success result.
2. You issue another POST request to /<internalAddress>/<internalLink1>. The server responds with "302" response, indicating to the client that it should fetch another URL. At this point, the POST data has already been submitted and is not going to be sent again when fetching the other URL. (.NET's HttpClient and HttpWebRequest behave like this as well.)
3. The client issues a POST request to /<internalAddress>/<internalLink2>. The server responds with "408", indicating that the connection established less than 200 miliseconds ago has already timed out. Which is somewhat strange.
Interestingly, according to the log, it seems that the POST request has actually been successful and that the server received the posted data. Would it be possible to determine whether this is really the case?
But then there is the "408" response. This was indeed sent by the server, so whoever created the server-side application or configured the server should be able to tell what is going on. If we encountered the issue ourselves, we would investigate this first. However, it's quite possible that .NET 4.5.2's HttpWebRequest received the "408" response as well, but reconnected to resend the request. This is allowed by the specification (see
https://tools.ietf.org/html/rfc7231#section-6.5.7), but it's not mandatory. We'll look into HttpClient's behavior in this scenario and let you know if we discover anything.