gpt4 book ai didi

iphone - 获取方案的默认端口?

转载 作者:行者123 更新时间:2023-12-03 19:41:53 24 4
gpt4 key购买 nike

有没有办法找出 NSURLRequest 将使用什么端口号来满足特定的 NSURL

显然,我可以为 http 请求硬编码端口 80,为 https 请求硬编码端口 443。但肯定有一种内置方法可以从 Cocoa Touch 中的 URL 方案获取端口号。

NSURL 上的 port 方法仅在 URL 中指定端口时返回一个值。它适用于 http://stackoverflow.com:80,但不适用于更常见的 http://stackoverflow.com

此处的上下文是我正在登录一个正在重定向我的 Web 服务(例如,从 (http://webservice.invalid/path/to/api 到 http://webservice2.invalid:2003/path/to/api )。所有 URL 均基于该服务的基本 URL,我想更新它以反射(reflect)现实并避免将来的重定向。

目前,我正在提取方案和主机,但没有考虑到端口也可能会发生变化。如果我没有在重定向过程中获得端口,我不想在将来的请求中指定端口。

最佳答案

NSURLRequest有一个名为 URL 的方法,它返回 NSURL它有一个名为 port 的方法。

NSURLRequest request = ...;

NSNumber *port = [[request URL] port];
NSLog(@"Port: %d", [port intValue]);

文档:

port
Returns the port number of a URL conforming to RFC 1808.

- (NSNumber *)port
Return Value The port number of the URL. If the receiver does not conform to RFC 1808, returns nil.

编辑:

如果 URL 中未设置端口并且您知道该方案,则硬编码默认端口没有任何问题。例如。 http = 80,https = 443,ftp = 21。这些端口是在标准中定义的,您可以将它们存储在代码中某处的常量中,以避免 magic numbers .

关于iphone - 获取方案的默认端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7666737/

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