Gibt es eine Möglichkeit, Socket-Level-Optionen (wie SO_KEEPALIVE) für ein JDK stdlib HttpUrlConnection
zu setzen? Ich versuche einen Weg zu finden, HTTP-Anfragen zu bekommen, die nicht gelegentlichen "hängenden" Verbindungen zum Opfer fallen (die anscheinend aufgrund von Netzwerkpaketverlusten auftreten). Ein robuster HTTP-Client. Ich weiß, dass es die setReadTimeout
Methode gibt, aber ich versuche, etwas zu finden, um den TCP-Strom wieder ins Leben zu schubsen, anstatt es einfach abzubrechen, wie das Lesezeitlimit scheint. Oder berichten Sie zumindest, dass der Verbindungsfehler aufgetreten ist, anstatt für immer an einem Lesevorgang zu hängen. Aber das erlaubt auch, dass das Lesen "wann immer es will" zurückkommt, vorausgesetzt die Verbindung ist "immer noch aktiv".HttpUrlConnection SO_KEEPALIVE
Mit einigen Untersuchungen scheint es, dass die Standardeinstellung für SO_KEEPALIVE für die C-Layer- und Java-Level-Sockets "aus" ist.
Sind Sie mit der Verwendung von HttpUrlConnection verheiratet? Apache HttpClient hat wahrscheinlich wonach Sie suchen. [HttpClient] (https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/) – drelliot
@drelliot Ich schätze, du hast Recht, fühlen Sie sich frei, um eine Antwort zu machen, und ich werde akzeptiere es :) – rogerdpack