【发布时间】:2018-03-19 05:21:33
【问题描述】:
当我想在服务器上发送一些数据时,我遇到了一些错误。这个问题是当我将图像转换为 Base64 代码时,它会产生一些问题。请帮我解决这个问题。数据格式不正确,状态码为 500。不知道如何解决。
错误:
<NSHTTPURLResponse: 0x1c043c2c0> { URL: http://192.168.1.58/api/visitor/store } { Status Code: 500, Headers {
"Cache-Control" = (
"no-cache, private"
);
Connection = (
close
);
"Content-Type" = (
"text/html; charset=UTF-8"
);
Date = (
"Mon, 19 Mar 2018 05:11:06 GMT"
);
Server = (
"Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/7.1.1"
);
"Transfer-Encoding" = (
Identity
);
Vary = (
Authorization
);
"X-Powered-By" = (
"PHP/7.1.1"
);
"X-RateLimit-Limit" = (
60
);
"X-RateLimit-Remaining" = (
59
);
} }
The data couldn’t be read because it isn’t in the correct format.
我的代码是:
func apiToSaveData(strURL: String)
{
let myURL = URL(string: strURL)
let request = NSMutableURLRequest(url: myURL!)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Accept")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let token = "Bearer " + strToken
request.setValue(token, forHTTPHeaderField: "Authorization")
var postString: [String : String] = ["" : ""]
if let navController = self.navigationController, navController.viewControllers.count >= 2
{
//Comes from After VerifyOTP after Returning Screen
let viewController = navController.viewControllers[navController.viewControllers.count - 2]
if viewController.restorationIdentifier == "VerifyOTP"
{
postString = ["image": strEncodedImg, "name": tfName.text!, "phone": tfMobile.text!, "email": tfEmail.text!, "otp": strOTP]
}
else if viewController.restorationIdentifier == "VisitorVC"
{
let imgObj = otlBtnTakeImage.imageView?.image
let imgData: Data = UIImagePNGRepresentation(imgObj!)!
let strEncodedImg1 = imgData.base64EncodedString()
print("ENcodedImage: \(strEncodedImg1)")
postString = ["image": strEncodedImg1, "name": tfName.text!, "phone": tfMobile.text!, "email": tfEmail.text!]
}
}
}
【问题讨论】:
-
甚至没有人知道您如何将图像对象转换为 base64 字符串对象。
-
请问怎么把图片转成base64传给服务器
-
500 个错误可能意味着问题出在服务器端,如果请求格式错误,您应该会收到 4XX 错误。