在swift 3中编码url或替换char的出现之间的区别

时间:2017-03-22 22:54:10

标签: json xcode utf-8 swift3

我有一个问题,即不了解何时编码URL或只是替换char的出现。该应用程序运行良好并升级到swift 3,服务器现在提供无效用户帐户的响应。

以下是代码:

userEmail: String = "myEmail+a@gmail.com"?    
let body : String = ("username=\(userEmail!)&password=\("thePassword")")
var request = NSMutableURLRequest()
request = NSMutableURLRequest(url: URL(string:"https://team.mycompany.com/teambeta/LoginApp")!)
request.httpMethod = "POST"
request.httpBody = body.data(using: String.Encoding.utf8)

所以有问题的电子邮件包含一个“+”,因为我需要创建多个用户帐户,以便使用唯一的电子邮件地址进行测试。因此,我使用的是一个Gmail帐户并添加“+”,以便所有电子邮件都转到单个电子邮件地址。知道“+”功能的用户也可能会创建用户帐户,所以我需要解决这个问题,而不仅仅是为了测试目的。

myEmail@gmail.com
myEmail+a@gmail.com
myEmail+b@gmail.com

所以我的问题是,如果我这样做:

request.httpBody = body.data(using: String.Encoding.utf8)

我会将身体改为:

username=myEmail%2ba@gmail.com&password=thePassword

或者我首先需要替换这样的文本:

            userEmail = userEmail?.replacingOccurrences(of: "+", with: "%2b")

如果我只是替换文本,那么我就不必编码了。

很抱歉,如果它是一个重复的问题,因为我还没有在其他问题上找到答案。

0 个答案:

没有答案