2012-02-03 2 views
1

-Этот решена, см дно пост-NullPointer Exception с Cookie на Android 2.2 - отлично работает на 2.3 и выше

Я пытаюсь получить печенье от установленного соединения. Следующий код работает хорошо, но он бросает мне NullPointer Exception на Android 2.2 и ниже:

URL url = new URL("https://myloginform"); 
      trustAllHosts(); //because the certificate is not singed 
      HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); 
      conn.setHostnameVerifier(DO_NOT_VERIFY); 
      conn.setInstanceFollowRedirects(false); 
      conn.setDoOutput(true); 

      //Connect to login-page and send login data 
      OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 
      wr.write(data); 
      wr.flush(); 
      wr.close();  

      //get cookies THIS WORKS ONLY ON ANDROID 2.3 AND ABOVE 
      List<String> cookies = conn.getHeaderFields().get("Set-Cookie"); 
      conn.disconnect(); 

      //connect to overview page 
      url = new URL("https://mynextpage"); 
      trustAllHosts(); 
      conn = (HttpsURLConnection) url.openConnection(); 
      conn.setHostnameVerifier(DO_NOT_VERIFY); 
      conn.setInstanceFollowRedirects(false); 




      //Send cookies for identification - THIS WILL THROW A NULLPOINTER EXCEPTION 
      for (String cookie : cookies) { 
       conn.addRequestProperty("Cookie", cookie.split(";", 2)[0]); 
      } 





      // Get the response 
      BufferedReader rd = new BufferedReader(new InputStreamReader(
        conn.getInputStream())); 

      while (!(line2.contains("</html>"))) { 
       line = rd.readLine(); 
       line2 += line; 
      } 
      // wr.close(); 
      rd.close(); 

Кто-нибудь есть идея, почему?

Найдено решение. В Android 2.2 нет «Set-Cookie», это «set-cookie»

ответ

0

Это не вещь Android, это вещь HTTP. HTTP-заголовок для файлов cookie - Set-Cookie. Возможно, Android 2.3+ действует странно, но не должно быть изменений заголовков в HTTP-запросе/ответе. Вы должны указать это как ошибку.

+1

«set-cookie» не работает под Android 2.3. Есть ли более общий способ получения файлов cookie, которые не зависят от точной орфографии? – skyworxx