Alamofire responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength)

Hatte ich einige code, der war erste Ergebnisse aus einer MySQL-DB auf einem entfernten web-server. Es ist nicht mehr funktioniert und ich erhalte die Meldung responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength). Hier ist ein code...

    Alamofire.request(ADS_URL, method: .get).validate().responseJSON { response in
        print("Request: \(String(describing: response.request))")   //original url request
        print("Response: \(String(describing: response.response))") //http url response
        print("Result: \(response.result)")                         //response serialization result

        switch response.result {
        case .success(let value):
            let json = JSON(value)
            print ("JSON: \(json)")

            if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) {
                print("Data: \(utf8Text)") //original server data as UTF8 string
            }

        case .failure(let error):
            print("Error while querying database: \(String(describing: error))")
            return
        }
    }

Ich bin auch mit SwiftyJSON. Hier sind die Ergebnisse der code...

Request: Optional(http://doyouado.com/adscan/get_ads)

Response: Optional(<NSHTTPURLResponse: 0x17502f3a0> { URL: http://doyouado.com/adscan/get_ads } { status code: 200, headers {
    Connection = "keep-alive";
    "Content-Length" = 0;
    "Content-Type" = "text/html; charset=UTF-8";
    Date = "Mon, 18 Sep 2017 16:04:37 GMT";
    Server = "nginx/1.12.1";
    "Set-Cookie" = "ado_session=a%3A5%3A%7Bs%3A10%3A%22session_id%22%3Bs%3A32%3A%225019d90891c70c81df8ebc2fe754a68f%22%3Bs%3A10%3A%22ip_address%22%3Bs%3A15%3A%22109.150.214.128%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A86%3A%22ADoBroadcaster%2F1.0+%28com.GaryFrank.ADoBroadcaster%3B+build%3A1%3B+iOS+10.3.3%29+Alamofire%2F4.5.0%22%3Bs%3A13%3A%22last_activity%22%3Bi%3A1505750677%3Bs%3A9%3A%22user_data%22%3Bs%3A0%3A%22%22%3B%7D3130ef6f5541e6f944da5a5a1292350bf203fa1b; expires=Mon, 18-Sep-2017 18:04:37 GMT; Max-Age=7200; path=/";
} })

Result: FAILURE  

Error: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength)

Habe ich versucht, mit .response und .responseString, aber ich bekomme keine Informationen zurückgegeben. Ich bin komplett ratlos. Das war alles wunderbar funktioniert. Hoffentlich gibt es jemanden, der etwas Licht in diese Schuppen?

  • Sind Sie sicher, dass die url verweist auf ein gültiges json?
  • Die URL ist ein php-script mit MySQL-Abfragen und gibt die Ergebnisse als JSON. echo die Funktionen json_encode($anzeigen);
  • Versuchen Sie es mit responseString statt responseJSON und drucken Sie response.result.value und sehen, warum es ist nicht in der Lage, zu serialisieren. Haben Sie vielleicht html oder so etwas.
  • Mit responseString, wird ein leerer string zurückgegeben Antwort.Ergebnis.Wert. Wenn ich die URL in meinem browser, ich kann sehen, dass die Daten im JSON-format. Ich habe die JSON. Es ist gültig.
  • vielen Dank, es war hilfreich für mich!
InformationsquelleAutor gfgruvin | 2017-09-18
Schreibe einen Kommentar