【问题标题】:I want to insert a variable inside a string in NSURL (Swift)我想在 NSURL (Swift) 中的字符串中插入一个变量
【发布时间】:2015-12-30 05:51:28
【问题描述】:

我的应用页面有一个表单,我希望用户在其中输入他的姓名和电话号码。

我希望将此数据提取到以下 URL。

变量是用户名,电话号码。

var url:NSURL = NSURL(string: "https:xyz.com/newRequest?fullname=\(username)&phone=\(phoneno)")!

这是用用户名和电话号码参数作为变量编写 URL 的正确语法吗?


这是我正在尝试实现的,但我在模拟过程中不断收到错误 405 -

var post:NSString = "username=\(username)&phoneno=\(phoneno)"

NSLog("PostData: %@",post);

var url:NSURL = NSURL(string: "https://example.com/newRequest?fullname=(username)&phone=(phoneno)")!

var postData:NSData = post.dataUsingEncoding(NSASCIIStringEncoding)!

var postLength:NSString = String( postData.length )

var request:NSMutableURLRequest = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
request.HTTPBody = postData
request.setValue(postLength, forHTTPHeaderField: "Content-Length")
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue("application/json", forHTTPHeaderField: "Accept")

【问题讨论】:

  • 您忘记了源代码示例中的反斜杠。
  • 我只是不确定如何在 url 字符串中使用变量组件...

标签: json swift nsurl


【解决方案1】:

您应该将NSURLComponentsNSURLQueryItem 一起使用。然后系统可以正确地为您转义这些值。像这样:

let username = "foo"
let phoneno = "bar"

let comps = NSURLComponents(string: "https://example.com/newRequest")
comps?.queryItems = [
    NSURLQueryItem(name: "fullname", value: username),
    NSURLQueryItem(name: "phone", value: phoneno)
]

comps?.URL // returns https://example.com/newRequest?fullname=foo&phone=bar

【讨论】:

  • 谢谢!你能帮我在哪里进行更改吗?我刚开始使用 Swift 和 JSON 2 天,但我仍然不确定我在做什么:D
  • 谢谢。所以现在我不需要使用 NSLog 、 NSData 或任何随后的请求语句?
  • let name = "abc" let phone = "123456" let url = NSURLComponents(string: "example.com/newRequest") url?.queryItems = [ NSURLQueryItem(name: "fullname", value: name) , NSURLQueryItem(name: "phone", value: phone) ] url?.URL 这足以替换上面最初发布的代码段 ? 而不是 -let name = "abc" let phone = "123456" I可以使用已经存储了应用程序字符串的变量吗?让名称=用户名让电话=电话号码
猜你喜欢
  • 2011-12-24
  • 2017-03-02
  • 1970-01-01
  • 1970-01-01
  • 2015-12-12
  • 2019-05-01
  • 1970-01-01
  • 2019-04-14
相关资源
最近更新 更多