2017-01-26 4 views
0

Я пытаюсь сохранить некоторые текстовые данные и изображения на сервер с помощью Alamofire, но я получаю следующее сообщение об ошибке:ошибка SerializationFailure при отправке данных с Alamofire

FAILURE: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}))

Мой код:

internal func postContent(forApi Name:String, image:UIImage?, withData payload:[String: String], success: ((_ response:[String: AnyObject])->Void)?, failure: ((Error)->Void)?) { 
    //create Alamofire request 
    //if everything was fine call success block with people array passed into it 
    //if failure occurred, call failure block with error. 
    if(isConnectedToNetwork()){ 
     let url = SharedConstants.baseURL+Name 
     print("url "+SharedConstants.baseURL+Name) 

     Alamofire.upload(multipartFormData: { (multipartFormData) in 
      if let img = image { 
       multipartFormData.append(UIImageJPEGRepresentation(img, 0.5)!, withName: "photo_path", fileName: "swift_file.jpeg", mimeType: "image/jpeg") 
      } 

      for (key, value) in payload { 
       multipartFormData.append(value.data(using: .utf8)!, withName: key) 
      } 
     }, to: url, method: .post , headers:nil, encodingCompletion: { (result) in 
      switch result { 
      case .success(let upload, _, _): 

       upload.responseJSON(completionHandler: { (response) in 
        print(response.request) // original URL request 
        print(response.response) // URL response 
        print(response.data)  // server data 
        print(response.result) // result of response serialization 

        if let JSON = response.result.value { 
         print(JSON) 
         success!(JSON as! [String: AnyObject]) 
        } 
        else{ 
         failure!(ErrorType.noRecordFound) 
        } 
       }) 
      case .failure(let error): 
       print(error) 
      } 
     }) 
    } 
    else{ 
     failure!(ErrorType.internetNotWorking) 
    } 
} 

Спасибо заранее

ответ

1

Код iOS верен, возникла проблема с внутренним кодом. Джсон не был правильно сформирован. Я исправил формирование json в backend, и он начал работать нормально.

1

Вы можете получить ошибку с прошивкой кода просто следовать мой ответ здесь

https://stackoverflow.com/a/43041931/5215474

Replace responseJSON with responseString and check your response from webservice.. it will lead to get the error line.

Смежные вопросы