У меня есть подозрение, что клиент ожидает ответа от сервера «HTTP / 1.1 100 continue». Вот как это работает. Когда вы отправляете данные на сервер, иногда сервер может быть еще не готов принять данные. Например, он сначала хочет аутентифицировать клиента.
Итак, когда вы отправляете запрос POST, клиент просто отправляет заголовки запроса с добавлением «Expect: 100-continue».
POST / url HTTP / 1.1
Сервер: имя сервера / fqdn
Длина контента: 100
Ожидайте: 100-продолжить
Если сервер готов к приему данных, он отвечает:
HTTP / 1.1 100 продолжить
Сервер: имя-сервера / fqdn
Теперь клиент может отправлять данные.
Однако, если сервер не готов к приему данных и хочет аутентифицировать клиента, он ответит другим кодом состояния.
Если вы отправите свой след от Wireshark на pastebin.com, я смогу проверить, но я подозреваю, что это именно то, что происходит.
Причина, по которой вы не видите этого в fiddler, может заключаться в том, что fiddler использует HttpListener для прослушивания HTTP-запроса, а HTTP-прослушиватель скрывает промежуточный ответ, такой как 100-continue от приложения (в данном случае fiddler).