HTTPClient og hvordan timeouts virker
Hej EksperterJeg er ærlig talt blevet lidt i tvilv om hvordan timeouts virker. Jeg bruger nedenstående kode til at teste (i princippet)
<%
HttpClient client = new HttpClient();
client.getHttpConnectionManager().getParams().setConnectionTimeout(100);
client.getHttpConnectionManager().getParams().setSoTimeout(200);
String url = "DER_HVOR_XML_HENTES";
GetMethod method = new GetMethod(url);
try{
client.executeMethod(method);
}
catch (Exception e){
out.print("Exception er: "+e);
}
String s = method.getResponseBodyAsString();
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Document trae = factory.newDocumentBuilder().parse(new InputSource(new StringReader(s)));
NodeList bla = XPathAPI.selectNodeList(trae, "DER/HVOR/LISTEN/ER/text()");
for (int i = 0; i < bla.getLength(); i++) {
out.print(bla.item(i).getNodeValue());
}
}catch (Exception e) {
out.print("Exception er: "+e);
}
%>
Det er:
client.getHttpConnectionManager().getParams().setConnectionTimeout(100);
client.getHttpConnectionManager().getParams().setSoTimeout(200);
og deres effekt som jeg er usikker på. Jeg troede at setConnectionTimeout(100); betyd at time to first byte skulle være 100 ms og at setSoTimeout(200); betød at der højst måtte gå 200 ms inden alt data skulle være modtaget. Nu oplever jeg at den første kan være 300 og den anden 200 uden at jeg får en timeoutexception. Hvad skyldes det?