Я конвертирую UIImages в base64EncodedString следующим образом:
let imageData:Data = UIImagePNGRepresentation(image!)!
let imageStr = imageData.base64EncodedString()
и я пытаюсь передать его ASP.NET API Controller следующим образом:
func postLandGradingImages(_ cellHolder: Array<ImagesData>, completion: @escaping (_ result: String) -> Void)
{
//Define Array of Dictionary
var jsonArrayOfDictionaries = [[AnyHashable: Any]]()
//For each item in the cellHolder
for i in 0..<cellHolder.count {
//Define Dictionary for grading data
var jsonDict = [AnyHashable: Any]()
//Set Lot
jsonDict["jobNo"] = cellHolder[i].jobNo
//Set Image
jsonDict["imageBytes"] = cellHolder[i].ImageBytes
//Add Dictionary to Array of Dictionary
jsonArrayOfDictionaries.append(jsonDict)
//Clear Dictionary
jsonDict = [AnyHashable: Any]()
}
//Convert Array of Dictionary to JSON Data
let jsonData: Data? = try? JSONSerialization.data(withJSONObject: jsonArrayOfDictionaries, options: .prettyPrinted)
//Define our URL with the credentials
let urlComponents = NSURLComponents(string: webservice + "PostGradingImages");
//Assign Username
urlComponents?.user = appDelegate.username;
//Assign Password
urlComponents?.password = appDelegate.password;
//Define our URL String
let url = urlComponents?.url;
//Define URL Request
var request = URLRequest(url: url!)
//Set Header Values for request
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
//Set Header Values for request
request.setValue("application/json", forHTTPHeaderField: "Accept")
//Set Request Method to POST
request.httpMethod = "POST"
//Set Request Body to JSON Data
request.httpBody = jsonData
let returnedData = String()
//Start out URL Session to post data
URLSession.shared.dataTask(with: request, completionHandler: {
(data, response, error) in
//If there is an error return false.
if(error != nil){
//return false
completion(returnedData)
}else{
//Get the response
let responseString = String(data: data!, encoding: .utf8)
OperationQueue.main.addOperation({
//return true
completion(responseString!)
})
}
}).resume()
}
Проблема в том, что мой код .NET не любит мой base64EncodedString, я получаю эту ошибку от .NET:
Ссылка на объект не установлена для экземпляра объекта.
Я пытаюсь выполнить отправку base64EncodedString из UIImage в .NET, чтобы я мог преобразовать его в байты и сохранить. Но мой .NET не принимает мою base64EncodedString .... что я делаю не так?