gpt4 book ai didi

ios - 如何将 "?x=123"之类的内容附加到 NSURL?

转载 作者:可可西里 更新时间:2023-11-01 04:16:37 26 4
gpt4 key购买 nike

我有一个 NSURL 的形式

"http://abc.def.com:1234/stuff/"

我想附加到它所以最终的 url 是这样的

"http://abc.def.com:1234/stuff/?x=123".

但如果我这样做

url = [NSURL URLWithString:@"http://abc.def.com:1234/stuff/?"];
url = [url URLByAppendingPathComponent:@"x=123"];

那么结果就是

http://abc.def.com:1234/stuff/x=123?

(如果使用 URLByAppendingPathExtension,结果相同)。

但如果我这样做

url = [NSURL URLWithString:@"http://abc.def.com:1234/stuff/?"];
url = [url URLByAppendingPathComponent:@"x=123"];

那么结果就是

http://abc.def.com:1234/stuff/%3Fx=123

(如果使用 URLByAppendingPathExtension,结果也是一样的)。

这两个都不是我想要的。如何获得“http://abc.def.com:1234/stuff/?x=123”的最终结果?

最佳答案

我认为这里最简单的答案是使用旧的 URL 作为基本 URL 创建一个新的 URL。

url = [NSURL URLWithString:@"?x=123" relativeToURL:url]

这是一个检查逻辑的单元测试

- (void)testCreatingQueryURLfromBaseURL
{
NSURL *url = [NSURL URLWithString:@"http://foo.com/bar/baz"];

url = [NSURL URLWithString:@"?x=1&y=2&z=3" relativeToURL:url];

STAssertEqualObjects([url absoluteString], @"http://foo.com/bar/baz?x=1&y=2&z=3", nil);
}

关于ios - 如何将 "?x=123"之类的内容附加到 NSURL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10304959/

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