【发布时间】:2015-11-03 20:25:43
【问题描述】:
我的 iOS 应用中有注册页面,我正在尝试用 Swift 编写。我要测试的第一件事是发送带有电子邮件地址的 POST,这就是我这样做的方式:
var bodyData = ("userEmail=%@\" \" &userPassword=%@\" \"&userDevice=%@\" \"", emailAddress.text, password.text, deviceModel)
let dataToSend = (bodyData as NSString).dataUsingEncoding(NSUTF8StringEncoding)
request.HTTPMethod = "POST"
request.HTTPBody = dataToSend
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
print("error=\(error)")
return
}
// print("response = \(response)")
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("responseString = \(responseString)")
}
task.resume()
但是,我收到一条消息,说这是一个空帖子。这是上面输出的确切响应:responseString = Optional({"complete":"false","message":"Empty Post"})
我研究了在 Swift 中发送简单 POST 的不同方法,这似乎是正确的。我看不出它有什么问题,或者为什么它会输出一条消息说帖子是空的……除了字符串的格式?
数据库期待“新用户”服务的多项内容,由于它是一个测试,我只发送一个部分。这可能是问题吗?新用户服务期待:
Service URL : https://test.com/services/new-user/
Required Post Fields:
For New User:
'userEmail'
'userPassword'
'userDevice'
(来自文档)。
我没有过多地使用 Web 服务。在进行了更多头脑风暴之后,我认为这些可能是罪魁祸首:我可能会收到回复,因为我没有一次发送所有数据。我也可能发送不正确。我可以以文本形式发送还是需要以 JSON 形式发送?
【问题讨论】:
-
了解新用户服务在另一端的期望会很有帮助,因为它正在发回 JSON
-
@spirographer 谢谢你,这是真的,我现在就更新我的 OP。
-
尝试测试类似
var bodyData = "userEmail=\" \" &userPassword=\" \"&userDevice=\" \""的东西,看看它是否可以使用这种格式的参数。另一种常见格式是 JSON,您也可以轻松修改代码以支持它 -
@spirographer 谢谢。我刚刚用我的新代码更新了我的 OP,虽然在将该类型转换为 NSData 时遇到问题...
标签: swift post nsurlsession