Frage

Ich verwende Apache Commons httpclient 3.1 und fand, dass die HttpurlConnection von Sun die 100 vom Strom fortgesetzt wird.

Daher scheine ich nicht in der Lage zu sein, die 100 weiterzumachen, da sie anscheinend von Suns Code fallen gelassen werden.

Ich kann nicht auf httpclient 4.0 voranschreiten, da dies viele Änderungen an bereits vorhandenem Code erfordern würde, sodass die Lösung entweder 3.1 oder etwas sein muss, das nicht in Konflikt steht.

Irgendwelche Ideen?

Vielen Dank

War es hilfreich?

Lösung

Ich habe die Lösung gefunden!

Over-Ride ProcessStatusline und Überprüfen Sie, ob 100.

public class Counting100PostMethod extends PostMethod {
Logger log = Logger.getLogger(Counting100PostMethod.class);
boolean first100 = true;

public Counting100PostMethod() {
    super();
}

public Counting100PostMethod(String s) {
    super(s);
}

@Override
protected void processStatusLine(HttpState httpState, HttpConnection httpConnection) {
    super.processStatusLine(httpState, httpConnection);
    int status = getStatusCode();
    if (status == 100) {
        if (first100) {
            first100 = false;
        } else {
            // can now increment counter
            log.debug("Increment counter");
        }
    }
}

Andere Tipps

Es scheint, als würde dieses Verhalten von diesem Problem abgelehnt: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4396798.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top