ios - Swift - 将 base64EncodedString 传递给 ASP.NET API
问题描述
我正在将 UIImages 转换为 base64EncodedString,如下所示:
let imageData:Data = UIImagePNGRepresentation(image!)!
let imageStr = imageData.base64EncodedString()
我正在尝试将它传递给 ASP.NET API 控制器,如下所示:
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 收到此错误:
你调用的对象是空的。
我想要完成的是将 UIImage 中的 base64EncodedString 发送到 .NET,以便我可以将其转换为字节,以便保存它。但是我的 .NET 不接受我的 base64EncodedString ....我做错了什么?
解决方案
推荐阅读
- c - 对链接到 .so 文件的第 3 方 .a 文件隐藏符号
- unity3d - 我如何使相互吸引的对象不会在 Unity3D 中反弹到遗忘?
- airflow - Airflow - 指定执行超时参数的时间
- assembly - 在汇编中将两个二进制数与一组有限的运算符进行比较
- python - 在 Python 的元组中访问字典中的项目
- azure - 为什么没有为已删除的容器记录 Azure 门户活动日志事件?
- python - 为什么我调试程序时 PyCharm 的断点突然变灰了?
- css - SVG:旋转整个文本
- excel - Microsoft Excel 如何检测 .xls 或 .xlsx 文件的编码?
- mysql - MySQL ERROR 1071 (42000): 指定的键太长;最大密钥长度为 1000 字节