سؤال

وأستخدمه أباتشي العموم HttpClient وإصلاحه 3.1، ولقد وجدت أن HttpURLConnection من الشمس يسقط 100 يستمر من الدفق.

وبالتالي فإنه لا يبدو قادرا على الحصول على 100 متابعة لأنها أسقطت على ما يبدو كود الشمس.

وأنا غير قادر على المضي قدما لHttpClient وإصلاحه 4.0 لأن ذلك يتطلب الكثير من التغييرات إلى رمز موجودة بالفعل لذلك الحل يجب أن يكون إما 3.1 أو ما لا الصراع.

وأي أفكار؟

والشكر

هل كانت مفيدة؟

المحلول

ولقد وجدت الحل!

والإفراط في ركوب processStatusLine وتحقق للحصول على مركز 100.

وتذكر أن أول 100 ومن المتوقع (خادم تقول لي أنا يمكن أن تستمر مع POST)، وفي حالتي أنا يمكن تجاهل بأمان أن واحدا. بهذه الطريقة يمكنني الحصول على كافة المعلومات التي خدمة بلدي يستجيب معها.

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

نصائح أخرى

ويبدو أن هذا هو السلوك المتوقع ورفضت هذه المشكلة: HTTP : //bugs.sun.com/bugdatabase/view_bug.do bug_id = 4396798 .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top