【问题标题】:Create NSString Url with QueryString使用 QueryString 创建 NSString Url
【发布时间】:2013-07-09 21:22:11
【问题描述】:

我想创建字符串,就像我的意思是想用查询字符串创建 url

NSString urlString = @"http://.com/*.aspx?log="+txtMail.text+"&pass="+txtPass.text;

但我在 nsstring 中得到了二进制表达式 NSstring 的无效操作数。任何身体帮助?

【问题讨论】:

    标签: ios nsstring nsurl


    【解决方案1】:

    我怀疑您对 Objective-C 很陌生。 Objective-C 与 C++ 不同。

    你要使用的代码行是:

    NSString * urlString = [NSString stringWithFormat: @"http://.com/*.aspx?log=%@&pass=%@", txtMail.text, txtPass.text];
    

    您可能还需要对 urlString 进行百分比转义以创建合法 URL,您可以通过以下方式完成:

    NSString * escapedUrlString = [urlString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
    

    【讨论】:

    • 是的,Micheal 非常新。我正在编写 .Net Objective C 代码,现在对我来说很陌生。.. :) 感谢您的帮助
    • 不应该对stringByAddingPercentEscapesUsingEncoding: 的调用在txtMail.texttxtPass.text 而不是整个URL 上完成吗?
    • 为什么不是整个 URL 字符串(在这种情况下,它会是一次调用,而不是对“stringByAddingPercentEscapesUsingEncoding”的两次单独调用)?
    • @MichaelDautermann 实际上,这两种方法都不像我预期的那样有效。如果用户在txtMail.text 中输入类似foo&bar=zzz 的内容,则生成的URL 将无法正确转义。该 URL 将以额外的 bar 参数结束。我希望foo&bar=zzz 的值会被转义为foo%26bar%3Dzzz
    • 这里的诀窍是您需要转义 URL 查询的 components-stringByAddingPercentEscapesUsingEncoding: 没有足够的上下文来知道你想要什么。相反,下拉到CFURLCreateStringByAddingPercentEscapes() 并明确告诉它为您转义&= 字符。也有很多关于这方面的开源。
    猜你喜欢
    • 2014-10-25
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 2023-03-12
    相关资源
    最近更新 更多