gpt4 book ai didi

ios - 在NSURL和iOS8 +中使用引号

转载 作者:行者123 更新时间:2023-12-01 17:25:00 25 4
gpt4 key购买 nike

我正在尝试使用NSURL形成请求。
我的代码:

(某处)

#define CLASS_URL @"https://www.someurl.com/xyz"

(某处)
NSString *className = @"className";

然后是我的主要代码:
NSURL *url = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"%@&name=\"%@\"", CLASS_URL, className]];

我已经阅读了很多关于在StackOverflow上添加引号的答案,该说我应该使用什么。我努力了 :
  • %22%%22
  • 添加stringByAddingPercentEscapesUsingEncoding
  • 只需使用\"即可,如显示的代码
  • 中所示

    但是,所有答案似乎都不起作用。调用 (null)时我总是收到 NSLog(@"URL: %@", url);
    有人对如何正确执行此操作有任何想法吗?

    编辑:
    我尝试按照建议使用stringByAppendingString,但仍然无法正常工作。
    NSString *tmp = [CLASS_URL stringByAppendingString:[NSString stringWithFormat:@"&name=\"%@\"",className]];

    预期结果:

    www.someurl.com/xyz&name="className“

    如果用户输入空格,我需要双引号。

    最佳答案

    您的预期网址不正确。

    如果用户输入空格,我需要双引号。

    双引号不会使URL中的空格合法。保留空格,并且必须使用百分号编码(不带引号)。双引号不是未保留空间的一部分,因此,如果需要,也应将双引号引起来(但这不会使您免于编码空间)。

    构建它的方法是对要发送的字符串进行编码:

    NSString *className = @"className with space";
    NSString *quotedClassName = [className stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
    NSString *urlString = [NSString stringWithFormat:@"%@?name=%@", CLASS_URL, quotedClassName];
    NSURL *url = [[NSURL alloc] initWithString:urlString];

    这将编码为:
    https://www.someurl.com/xyz?name=className%20with%20space

    注意,我已经完全删除了双引号。如果确实需要它们,则可以通过使原始字符串包含它们,然后对其进行编码来获得它们:
    NSString *className = @"\"className with space\"";
    NSString *quotedClassName = [className stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

    这将编码为:
    https://www.someurl.com/xyz?name=%22className%20with%20space%22

    (我还修复了您的查询参数,这可能只是一个错字。查询是通过 ?而不是 &与路径分隔的。)

    关于ios - 在NSURL和iOS8 +中使用引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32969964/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com