我使用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(错误域= NSCocoaErrorDomain代码= 3840“字符0附近的无效值。” UserInfo = {NSDebugDescription =字符0附近的无效值。)))
答案 0 :(得分:1)
这确实意味着您的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)
}
}
答案 1 :(得分:0)
它清楚地表明Web服务有问题。 API无法回应有效的JSON。 在Postman中点击API,然后以JSON和HTML格式查看响应
答案 2 :(得分:0)
服务器无法提供有效的JSON对象作为响应。要获得服务器的响应,可以使用Postman或其他一些网络工具。使用Alamofire,您还可以使用以下代码行获取整个字符串(服务器正在响应):
Alamofire.request("mysite/api/user",method:.post,parameters:["uids":uids],encoding: JSONEncoding.default).responseString { response in
print("Response String: \(response)")
}
希望这会有所帮助!