كيفية اتباع "إعادة توجيه تلقائي الصفحة" للحصول على رمز الاستجابة؟

StackOverflow https://stackoverflow.com/questions/2047716

سؤال

يمكنني استخدام التعليمات البرمجية التالية للحصول على رمز الاستجابة المرتجعة لصفحة ASPX

HttpConnection connection 
     = (HttpConnection) Connector.open("http://company.com/temp1.aspx" 
                                       + ";deviceside=true");
connection.setRequestMethod(HttpConnection.GET);
connection.setRequestProperty(HttpHeaders.HEADER_CONNECTION, "close");
connection.setRequestProperty(HttpHeaders.HEADER_CONTENT_LENGTH, "0");
int resCode = connection.getResponseCode();

أنه يعمل بشكل جيد. ولكن ماذا لو كان الرابط "http://company.com/temp1.aspx."إعادة توجيهات السيارات إلى صفحة أخرى؛ افترض"http://noncompany.com/temp2.aspx."؟ كيف يمكنني الحصول على رمز الاستجابة الذي يتم إرجاعه من الرابط الثاني (الذي تمت إعادة توجيه الرابط الأول)؟ هل هناك شيء مثل" متابعة إعادة التوجيه "للحصول على استجابة جديدة للصفحة التي تمت إعادة توجيهها تلقائيا؟

شكرا لك مقدما.

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

المحلول

لقد وجدت الحل، هنا هو لأولئك الذين يهتمون:

int resCode;
String location = "http://company.com/temp1.aspx";
while (true) {  
     HttpConnection connection = (HttpConnection) Connector.open(location + ";deviceside=true");
     connection.setRequestMethod(HttpConnection.GET);
     connection.setRequestProperty(HttpHeaders.HEADER_CONNECTION, "close");
     connection.setRequestProperty(HttpHeaders.HEADER_CONTENT_LENGTH, "0");
     resCode = connection.getResponseCode();
     if( resCode == HttpConnection.HTTP_TEMP_REDIRECT
          || resCode == HttpConnection.HTTP_MOVED_TEMP
          || resCode == HttpConnection.HTTP_MOVED_PERM ) {
          location = connection.getHeaderField("location").trim();
     } else {
          resCode = connection.getResponseCode();
          break;
     }
}

نصائح أخرى

تحتاج إلى رمز httpconnection الخاص بك داخل حلقة تتبع إعادة توجيه HTTP بناء على رمز الاستجابة.

من المفترض أن يمنحك رأس HTTP "الموقع" في الاستجابة مضيفا جديدا (ربما يمكن استخدامه لاستبدال عنوان URL بالكامل).

HttpConnection.HTTP_MOVED_TEMP و HttpConnection.HTTP_MOVED_PERM هي رمز الاستجابة الذي يشير إلى إعادة توجيه.

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