2016-04-07 23 views
-1

Ich versuche, das Datum der letzten Änderung aus einer APK-Datei auf meinem Server zu bekommen, das Problem, sobald ich versuche, den Header zu bekommen, scheitert es irgendwie.Wie bekomme ich das letzte Änderungsdatum von der APK-Datei auf dem Server

kann ich die Datei in Ordnung Download mit

try { 
      HttpURLConnection.setFollowRedirects(false); 
      HttpURLConnection con = (HttpURLConnection) new URL(params[0]).openConnection(); 

      con.setRequestMethod("HEAD"); 
      return (con.getResponseCode() == HttpURLConnection.HTTP_OK); 
     } // do some more not relevant 

aber sobald ich versuche, den Header vom Server zu bekommen es nicht

  URL obj = new URL(customURL); 
      URLConnection conn = obj.openConnection(); 
      Map<String, List<String>> map = conn.getHeaderFields(); 
for (Map.Entry<String, List<String>> entry : map.entrySet()) { 
       System.out.println("Key : " + entry.getKey() 
         + " ,Value : " + entry.getValue()); 
       Toast.makeText(getApplicationContext(),"Key: "+entry.getKey() + "Value: " + entry.getValue(),Toast.LENGTH_SHORT).show(); 
      } 

ich dies versucht haben, sondern auch die bereits zu verwenden existing connecting und einfach die con .. aber es scheitert irgendwie

jede hilfe wäre wirklich nett

+0

später im Programm im sogar die Größe der Datei runOnUiThread setzen zu bekommen. totalSize = urlConnection.getContentLength(); aber ich will nur das modifizierte Datum –

Antwort

0

versuchen, dies kann helfen,

long date = con.getLastModified();

HttpURLConnection.setFollowRedirects(false); 
HttpURLConnection con = (HttpURLConnection) new URL(fileUrl).openConnection(); 
long date = con.getLastModified(); 

    if (date == 0) 
    System.out.println("No last-modified information."); 
    else 
    System.out.println("Last-Modified: " + new Date(date)); 
return date 

als Referenz, http://developer.android.com/reference/java/net/URLConnection.html#getLastModified%28%29

+0

dieses Stück Code direkt vor meinem SetRequestMethode .. und immer noch mein Programm fehlschlägt und dann stattdessen false zurückgibt. und ich habe meine Return-Header überprüft und sie tun. (getestet mit Postboten) –

-1

ich fand heraus, dass der Fehler, den ich gemacht wurde es in einer Asynchron-Aufgabe ausgeführt wird und dann in einem Toast das Ergebnis zu sehen versuchen.

es ausgeführt wurde, sobald ich sie in eine mit

final long date = urlConnection.getLastModified(); 

     runOnUiThread(new Runnable() { 
      public void run() { 
       Toast.makeText(getApplicationContext(),"GGG"+ date,Toast.LENGTH_SHORT).show(); 
      } 
     });