Ios 快速反应

Ios 快速反应,ios,swift,xcode,gzip,Ios,Swift,Xcode,Gzip,我在Swift应用程序中序列化了一个JSON响应,解析结果是一个单字节数组 { d = ( 31, 139, 8, 0, 0, 9, 110, 136, 0, 255, 236, 125, 如何将这个字节数组解码成我可以处理的实际数据 这是我获取和解析响应的swift代码 `func getWRHPSData(completionHandlerForPOST:@escaping(u结果:An

我在Swift应用程序中序列化了一个JSON响应,解析结果是一个单字节数组

{
d =     (
    31,
    139,
    8,
    0,
    0,
    9,
    110,
    136,
    0,
    255,
    236,
    125,
如何将这个字节数组解码成我可以处理的实际数据

这是我获取和解析响应的swift代码

`func getWRHPSData(completionHandlerForPOST:@escaping(u结果:AnyObject?,u错误:NSError?->Void)->Void{

    let request = NSMutableURLRequest(url: createURL())
    request.httpMethod = "POST"
    request.addValue("gzip, inflate", forHTTPHeaderField: "Accept")
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")

    let task = session.dataTask(with: request as URLRequest) { (data, response, error) in

        func sendError(_ error: String) {
            print(error)
            let userInfo = [NSLocalizedDescriptionKey : error]
            completionHandlerForPOST(nil, NSError(domain: "taskForGETMethod", code: 1, userInfo: userInfo))
        }

        /* GUARD: Was there an error? */
        guard (error == nil) else {
            sendError("There was an error with your request: \(error!)")
            return
        }

        /* GUARD: Did we get a successful 2XX response? */
        guard let statusCode = (response as? HTTPURLResponse)?.statusCode, statusCode >= 200 && statusCode <= 299 else {
            sendError("Your request returned a status code other than 2xx!")
            return
        }

        /* GUARD: Was there any data returned? */
        guard let data = data else {
            sendError("No data was returned by the request!")
            return
        }



        /* 5/6. Parse the data and use the data (happens in completion handler) */
        self.parseData(data, completionHandlerForConvertData: completionHandlerForPOST)
    }

    /* 7. Start the request */
    task.resume()
}

// given raw JSON, return a usable Foundation object
private func parseData(_ data: Data, completionHandlerForConvertData: (_ result: AnyObject?, _ error: NSError?) -> Void) {

    var parsedResult: AnyObject! = nil
    do {
        parsedResult = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as AnyObject
    } catch {
        let userInfo = [NSLocalizedDescriptionKey : "Could not parse the data as JSON: '\(data)'"]
        completionHandlerForConvertData(nil, NSError(domain: "convertDataWithCompletionHandler", code: 1, userInfo: userInfo))
    }

    print(parsedResult)
    completionHandlerForConvertData(parsedResult, nil)
}`
let request=NSMutableURLRequest(url:createURL())
request.httpMethod=“POST”
request.addValue(“gzip,充气”,用于HttpHeaderField:“接受”)
request.addValue(“应用程序/json”,forHTTPHeaderField:“内容类型”)
让task=session.dataTask(其中:request作为URLRequest){(数据、响应、错误)在
func sendError(error:字符串){
打印(错误)
let userInfo=[NSLocalizedDescriptionKey:错误]
completionHandlerForPOST(无,N错误(域:“taskForGETMethod”,代码:1,用户信息:用户信息))
}
/*卫兵:有错误吗*/
保护(错误==零)其他{
sendError(“您的请求出错:\(错误!))
返回
}
/*卫兵:我们得到了成功的2XX响应了吗*/
guard let statusCode=(响应为?HTTPURLResponse)?.statusCode,statusCode>=200&&statusCode Void){
var parsedResult:AnyObject!=nil
做{
parsedResult=尝试将JSONSerialization.jsonObject(使用:data,options:.allowFragments)作为任何对象
}抓住{
let userInfo=[NSLocalizedDescriptionKey:“无法将数据解析为JSON:'\(数据)'”]
ConvertData的completionHandlerForConvertData(无,N错误(域:“convertDataWithCompletionHandler”,代码:1,用户信息:用户信息))
}
打印(解析结果)
completionHandlerForConvertData(parsedResult,无)
}`

这个问题需要更多信息。我在上面看到的看起来像是一个字典,它的值是数组对象。你希望结果是什么?JSON或Gzip,或者两者都是?到目前为止,你的代码看起来像什么?我需要解码响应数据中传递的这个字节数组,我尝试Gzip压缩它,但它出错了,im not熟悉Gzipped响应以及如何在swift中使用它们