我试图弄明白为什么每次我将有效的JSON传递给服务器以获取请求时,连接都会超时。除了GET之外,我在将JSON以任何其他请求类型传递到我的服务器上没有任何问题。我已经在本地测试了服务器端代码,查询工作正常。
我想从我的数据库中获取一个特定的用户,我需要输入一个用户名,所以我将该用户名发送到服务器。
我不断得到的错误(如果我不向服务器发送任何参数,只返回当前用户,它会工作,我不会得到这个错误)
Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x604000454c40 {Error Domain=kCFErrorDomainCFNetwork Code=-1001
以下是API调用代码的一部分,我在其中设置了要发送到服务器的请求类型和值,以防:
let request = NSMutableURLRequest(url: url as URL)
request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
request.httpBody = jsonData
request.httpMethod = "GET"
服务器设置,以防万一:
DigitalOcean Droplet,Linux,Ubuntu 16.04,nginx
编辑/更新
如果我将方法从GET更改为POST(并保持服务器代码完全相同),服务器将立即返回正确的数据。
这方面的服务器端代码非常短,因此我真的不知道它是如何因优化而超时的:
user = UserModel.find_by_username(data['username'])
if user:
return {"response": [user.json()]}, 200
return {"response": "user not found"}, 404
似乎我们不能通过get方法发送JSON。它似乎既不能在模拟器上工作,也不能在实际设备上工作……我看到了一个类似的帖子,上面有人对我正在经历的事情进行了准确的评论。更改get to post是解决方法……但这是一个get请求,所以为什么不起作用?