NSURL *url = [NSURL URLWithString:@"appName://<?xml version=\"1.0\" encoding=\"UTF-8\"?>"];
但是 url = nil。我发现如果我删除“<”和“>”符号,就可以了。那么,这两个标志不能用在 URL 中吗?我应该用另一个标志替换标志吗?
谢谢!
NSURL *url = [NSURL URLWithString:@"appName://<?xml version=\"1.0\" encoding=\"UTF-8\"?>"];
但是 url = nil。我发现如果我删除“<”和“>”符号,就可以了。那么,这两个标志不能用在 URL 中吗?我应该用另一个标志替换标志吗?
谢谢!
我解决了这个问题。在我做之前 NSURL *url = [NSURL URLWithString:@"...."]; 我首先这样做:
NSString *urlStr = [string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
当在接收端解析这个 url 时,我首先做:
NSString *urlString = [[url absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; // url is a NSURL
为什么不直接在请求正文中发布文档?
GET 请求不是为此而设计的。如果文档中有 UTF-8 字符,您可能会遇到困难。
另外,不同浏览器中 URL 的最大长度是多少?意味着最多 2083 个字符。
您进入了一个非常依赖浏览器/代理的场景。
理论上是的。您可以使用 urlEncode 来执行此操作。HTTP 协议对 URL 的长度没有任何限制。
RFC 说:
注意:服务器应该谨慎依赖 URI 长度超过 255 字节,因为一些较旧的客户端或代理实现可能无法正确支持这些长度。