Я написал большую часть кода HttpClient; вот некоторые мысли:
Вам не нужно указывать HttpClient принять сервер, закрывающий соединение - он должен просто работать автоматически - сервер всегда может закрыть соединение, независимо от того, содержит ли клиент заголовок «Connection: close»
Использовать response.Dispose () - базовое соединение может не иметь возможности инициировать новое соединение / отправлять байты, пока вы не закончите чтение ожидающих байтов
client.DefaultHeaders.Add («Соединение», «закрыть»); должно работать - если вы получаете исключение, пожалуйста, откройте вопрос на сайте codeplex
Вы можете проверить ответ. Запрос. Заголовки, чтобы увидеть, что происходит на проводе
Вы можете пропустить "new Uri ()" в Post (new Uri (x)) - передача строки вызовет правильный конструктор (new Uri (x, UriKind.RelativeOrAbsolute)) для вас
По умолчанию время ожидания такое же, как и у HttpWebRequest - вы можете отключить их через client.TransportSettings.ReadWriteTimeout / client.TransportSettings.ConnectionTimeout, чтобы различать блокировку навсегда и тайм-аут