【问题标题】:Get request length limit in iOS在 iOS 中获取请求长度限制
【发布时间】:2014-01-17 12:28:53
【问题描述】:
我在我的 iPhone 应用程序中使用 Omniture SiteCatalyst。它使用 get 请求通过其 sdk 在内部访问服务器。但是我面临的问题是某些请求没有到达 Omniture 服务器。正在执行的 get 请求发送的长度可变,具体取决于请求的类型(大约 900 + 个字符)。
我的问题是 iOS 应用程序中的获取请求长度是否有任何限制?如果是的话
如果请求超过限制,它将如何表现?
【问题讨论】:
标签:
ios
iphone
mobile-safari
【解决方案1】:
理论上,如果 URL 符合 RFC 2396 就可以了。根据文档
如果路径是 NSURL 类无法创建新的 NSURL 对象
通过的格式不正确;路径必须符合 RFC 2396。
不成功的例子是包含空格的字符串
字符和高位字符。应该创建一个 NSURL 对象
失败,创建方法返回 nil,你必须准备好
处理。如果您使用文件系统路径创建 NSURL 对象,您
应该使用 fileURLWithPath: 或 initFileURLWithPath:,它们处理
URL 路径和文件系统路径之间的细微差别。如果你
希望容忍格式错误的路径字符串,您需要使用
Core Foundation 框架提供的用于清理
字符串。
但有时特殊字符会出现问题,例如空间,口音和其他。你必须[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
也有可能服务器无法处理很长的 url,如果服务器有任何限制,服务器将简单地截断 url 字符串的其余部分,如果这是一个问题,那么服务器将返回 414 错误 url 太长。