阿拉莫火 拉拉维尔中字符 0 周围的值无效



我使用 alamofire 将帖子数据发送到服务器,但它无法发送到我的服务器 我使用 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 周围的值无效。"用户信息={NSDebugDescription=字符 0 周围的值无效。

这确实意味着您的 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)
}
}

它清楚地表明 Web 服务有问题。API 未响应有效的 JSON。 在邮递员中点击 API,并查看 JSON 和 HTML 格式的响应

服务器无法提供有效的 JSON 对象作为响应。要获取服务器的响应,您可以使用Postman或其他一些网络工具。使用 Alamofire,您还可以使用以下代码行获取服务器响应的整个字符串:

Alamofire.request("mysite/api/user",method:.post,parameters:["uids":uids],encoding: JSONEncoding.default).responseString { response in
print("Response String: (response)")
}

希望这有帮助!

最新更新