Этот вопрос сформулирован так же, как и другой вопрос о SO (HttpClient: how do I obtain the underlying socket from an existing connection?), но этот вопрос на самом деле связан с туннелированием других протоколов через HTTP (S), и, таким образом, ответ немного отличается.Как получить базовый Socket из соединения httpclient?
То, что я пытаюсь сделать, это установить HTTPS-соединение, а затем узнать подробности этого соединения. Класс Java SSLSocket
даст мне то, что мне нужно, но я должен уметь удерживать Socket
сам, чтобы его опросить.
Есть ли способ добраться до базового Socket
? httpclient/httpcore стал лабиринтом фабрик и частных/защищенных реализаций вещей, поэтому очень сложно сориентироваться API, чтобы выяснить, как на самом деле получить вещи, как только они были настроены.
Какую информацию вы ищете именно в розетке? Если 'HttpClient' не предоставляет доступ к его объекту' Socket', вы можете просто использовать '(SSL) Socket' непосредственно для реализации HTTP (S) вручную. –
Вы не можете. Единственный способ разоблачить созданные sokets - это обеспечить собственную фабрику сокетов и хранить ссылки на созданные сокеты самостоятельно. – Antoniossss
@RemyLebeau Я ищу протокол TLS и набор шифров, согласованный с TLS. Я ограничил те, которые * могут * быть согласованы, но я хотел бы зарегистрировать те, которые были фактически выбраны для разговора. –