Überprüfen ob Datei im Web vorhanden

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Überprüfen ob Datei im Web vorhanden

    Hallo zusammen,

    ich bin hier gerade am verzeweifeln.

    Ich möchte mit möglichst wenig aufwand überpürfen eine bestimmte PDF Datei auf einem Server liegt.
    Also ich möchte wissen, ob die Datei Test.pdf im Internet unter test.de/test.pdf abrufbar ist. Wenn ja soll er dies tun, wenn nein das.

    Hört sich doch eigentlich ganz simple an, ich bekomm es aber einfach nicht hin.

    Kann mir jemand helfen?

    Danke und viele Grüße

    Falco953
  • Ich habe mir dafür mal eine Kategorie für NSDictionary erstellt, die einen HEAD-Request sendet und die Header-Fields als Dictionary liefert:

    Quellcode

    1. +(id)dictionaryWithHeadOfURL:(NSURL *)inURL {
    2. NSDictionary *theResult = nil;
    3. if([@"http" isEqualToString:[inURL scheme]] || [@"https" isEqualToString:[inURL scheme]]) {
    4. NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:inURL];
    5. NSURLResponse *theResponse = nil;
    6. NSError *theError = nil;
    7. [theRequest setHTTPMethod:@"HEAD"];
    8. [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&theResponse error:&theError];
    9. if(theError == nil && [theResponse respondsToSelector:@selector(allHeaderFields)]) {
    10. theResult = [(id)theResponse allHeaderFields];
    11. }
    12. }
    13. return theResult;
    14. }
    Alles anzeigen
    „Meine Komplikation hatte eine Komplikation.“
  • Quellcode

    1. +(BOOL)isURLReachable:(NSURL*)url
    2. {
    3. if(!url)
    4. {
    5. return NO;
    6. }
    7. NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    8. [request setCachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData];
    9. [request setHTTPMethod:@"HEAD"];
    10. NSURLResponse *response = nil;
    11. NSError *error = nil;
    12. NSData *data = [NSURLConnection sendSynchronousRequest:request
    13. returningResponse:&response
    14. error:&error];
    15. if(error)
    16. {
    17. return NO;
    18. }
    19. if(!response)
    20. {
    21. return NO;
    22. }
    23. if(!data)
    24. {
    25. return NO;
    26. }
    27. if(![response respondsToSelector:@selector(statusCode)])
    28. {
    29. return NO;
    30. }
    31. if([(id)response statusCode] != 200)
    32. {
    33. return NO;
    34. }
    35. return YES;
    36. }
    Alles anzeigen


    Viele Grüße