Question

J'utilise Apache Commons HttpClient 3.1, et j'ai constaté que HttpURLConnection de Sun supprime les 100 continu du flux.

Par conséquent, je ne semble pas en mesure d’obtenir les 100 Continuer, car ils sont apparemment abandonnés par le code de Sun.

Je ne parviens pas à passer à HttpClient 4.0 car cela nécessiterait de nombreuses modifications du code déjà existant. La solution doit donc être la version 3.1 ou quelque chose qui ne soit pas en conflit.

Des idées?

Merci

Était-ce utile?

La solution

J'ai trouvé la solution!

Remplacez processStatusLine et vérifiez le statut 100.

N'oubliez pas que les 100 premiers sont attendus (le serveur me dit que je peux continuer avec le POST) et que, dans mon cas, je peux ignorer celui-ci en toute sécurité. De cette manière, je reçois toutes les informations avec lesquelles mon serveur répond.

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");
        }
    }
}

Autres conseils

Il semble que ce problème soit prévu et ait été rejeté par ce problème: http : //bugs.sun.com/bugdatabase/view_bug.do? bug_id = 4396798 .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top