使用Swift处理GZipped(包含JSON)HTTP响应

时间:2015-05-07 08:54:43

标签: json swift http

我编写的Android应用程序可以从HTTP响应中获取GZipped Json数据。现在我想写一些做同样事情的iPhone应用程序。

使用Swift处理GZipped Json数据需要哪些类和方法?

1 个答案:

答案 0 :(得分:4)

在迅速的一面:

  • 解码gzip - 对于网络,您可以使用Alamofire。这个很 众所周知,并且基于NSURLConnection / NSURLSession也是如此 支持gzip编码的响应自动。 (我尝试并测试了它,它没有任何额外的代码工作)。要检查php响应是否真的被gzip压缩,请打印响应变量(alamofire完成处理程序中的第二个变量) 到控制台。这将打印响应标题......它应该 包含以下内容:"内容编码:gzip"。
  • 编码到gzip - 如果您还想从您的邮件中压缩请求 iOS App到PHP(你发布到php文件的参数) 看看here

在php方面:

  • 解码gzip - 要解压缩收到的(gzip)发布数据(来自您的iOS应用),请使用:

    // Read the post data
    $handle = fopen("php://input", "rb");
    $raw_post_data = '';
    while (!feof($handle)) {
       $raw_post_data .= fread($handle, 8192);
    }
    fclose($handle);
    
    // unzip the post data
    $raw_post_data_unzipped = gzdecode($raw_post_data);
    
  • 编码到gzip - 要发送gzipped响应(到您的iOS应用程序),请在php文件开头的某处添加以下行。

    ob_start('ob_gzhandler');