簡體   English   中英

如何在Swift中查看來自HTTP GET請求的服務器響應?

[英]How can I see the server response from an HTTP GET request in Swift?

我正在使用RESTless API進行數據庫查詢,以檢查諸如唯一的用戶名和電子郵件之類的內容。 但是,我不確定與從返回字典相比,如何從響應中獲取服務器代碼。 對於某些搜索,如果沒有找到結果,則返回404和非空字典。 所以我不能簡單地檢查return dict是否為空。

do {
        request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(data, options: .PrettyPrinted)
    }
    catch {
        print("failure")
    }
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    request.addValue("application/json", forHTTPHeaderField: "Accept")

    let task = session.dataTaskWithRequest(request) {
        data, response, error in

        // Check for error
        if error != nil
        {
            print("error=\(error)")
            return
        }

        // Print out response string
        let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
        print("responseString = \(responseString)")


        // Convert server json response to NSDictionary
        do {
            if let convertedJsonIntoDict = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary {

                // Print out dictionary
                print(convertedJsonIntoDict)
                convertedDict = convertedJsonIntoDict
            }
        }
        catch let error as NSError {
            print(error.localizedDescription)
        }

    }

    task.resume()

    return convertedDict ?? nil

傳遞給完成處理程序的response對象中包含有關響應的數據。 對於HTTP / HTTPS請求,它是一個NSHTTPURLResponse ,其中包含一個可以訪問的statusCode屬性。

let task = session.dataTaskWithRequest(request) {
        data, response, error in

    if let httpResponse = response as? NSHTTPURLResponse {
        let statusCode = httpResponse.statusCode
        // do whatever with the status code
    }

    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM