Comment compter le nombre de 100 Suite que le serveur m'a envoyé?
-
07-07-2019 - |
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
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 .