【问题标题】:How to identify whether response coming from server is pdf or url or image?如何识别来自服务器的响应是 pdf 还是 url 或图像?
【发布时间】:2012-07-16 20:14:11
【问题描述】:

在我的应用程序中,当我向服务器发送请求时,我将获得 url、pdf 或图像作为响应,并基于此显示结果(url->webview、image->imageview 等)。但我没有知道如何识别响应是 url 还是 pdf 还是图像?

请问有人知道我是如何做到这一点的吗?

提前致谢!

【问题讨论】:

  • 在 HTTP 响应中使用content-type

标签: iphone objective-c


【解决方案1】:

我假设您确实使用 NSURLConnection 来下载您的文件。所以,实现这个委托方法...

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

... 将 response 转换为 NSHTTPURLResponse 并从 allHeaderFields 中获取 Content-Type 值。

但这取决于您真正使用什么来下载文件。如果你确实使用了另一个类/框架/...,你就会明白了。

【讨论】:

    【解决方案2】:

    我想建议您在这两种情况下都使用 UIWebview,无论是 PDF 还是来自服务器的图像 url。

    [imgwebVw loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:strImgURL]]];
    

    【讨论】:

    • UIWebView s*cks ... 慢,臃肿,... :)
    • 使用 uiwebview 委托方法...UiwebviewDidStartLoad/UiwebviewDidfinishLoad 在从服务器 url 加载内容时显示 uiactivity 指示器。
    • 你的意思是说我可以使用uiwebview来加载图片、pdf和url?我不需要知道response是image、pdf还是url?[imgwebVw loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:strImgURL]]];这三个都适用吗?
    • 如果您正在获取所有情况下的服务器 url pdf url 或图像 url 或其他内容 url,它将适用于所有 uiwebview 方法 [imgwebVw loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:strImgURL ]]];只需在方法中传递 url。
    【解决方案3】:

    如果你真的必须这样做,你可以阅读文件头,但我不建议这样做。 here 是我编写的用于获取远程图像大小的类别,您可以对其进行调整以检测文件是否确实是图像。你可以做类似的流解析来搜索 PDF Header: %PDF-1.0 等。否则你会认为它是一个 url。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-19
      • 2012-10-19
      • 2020-09-21
      • 1970-01-01
      • 1970-01-01
      • 2014-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多