我使用alamofire将post数据发送到服务器,但它不能发送到我的服务器,我使用laravel获取用户数据,这是我的代码。
viewController
Alamofire.request("mysite/api/user",method:.post,parameters:["uids":uids],encoding: JSONEncoding.default).responseJSON { response in
switch response.result {
case .success:
print(response)
break
case .failure(let error):
print(error)
}
}在php服务器中
public function seeUser(Request $request) {
$uid = $request->input('uids');
//...... and get to model table to query
return response()->json([
'status' => 'user'
]);
}而日志响应错误是
responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840“字符0周围的无效值”。UserInfo={字符0.}周围的NSDebugDescription=Invalid值)
发布于 2018-06-28 07:34:27
这意味着您的JSON是不正确的。
尝试以字符串的形式响应并检查它。
Alamofire.request("mysite/api/user",method:.post,parameters:["uids":uids],encoding: JSONEncoding.default).responseString { response in
switch response.result {
case .success:
print(response)
break
case .failure(let error):
print(error)
}
}发布于 2018-06-28 07:34:55
这清楚地表明web服务存在问题。API没有响应有效的JSON。在Postman中命中API并看到JSON和HTML格式的响应
发布于 2018-06-28 08:10:47
服务器无法响应提供有效的JSON对象。要获取服务器响应的内容,可以使用邮递员或其他网络工具。使用Alamofire,您还可以获得整个字符串,服务器正在响应该字符串,代码行如下:
Alamofire.request("mysite/api/user",method:.post,parameters:["uids":uids],encoding: JSONEncoding.default).responseString { response in
print("Response String: \(response)")
}希望这能有所帮助!
https://stackoverflow.com/questions/51076993
复制相似问题