【问题标题】:Max parameter size for NSData / setHTTPBody?NSData / setHTTPBody 的最大参数大小?
【发布时间】:2013-02-28 10:32:13
【问题描述】:

我的 iPad 应用程序将文件列表作为字符串参数 fileList 发送到这样的网络方法:

NSString *post = [NSString stringWithFormat:@"sessionID=%@&fileList=%@&dateTime=%@&userID=%@", sessionID, fileList, timeOpened, userID];    
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *comparisonURLString = SERVER_COMPARE_URL_STRING;
NSURL *comparisonURL = [NSURL URLWithString:comparisonURLString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:comparisonURL];

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

[request setHTTPMethod:@"POST"];
[request addValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];

当文件列表超过一定大小时,它似乎被截断了。我在the apple documentation 中找不到任何关于最大尺寸的信息。此外,无论如何,后续参数似乎都可以收到,但在我将其视为问题的可能根源之前,我想知道是否有人知道是否有这样的限制?

服务器运行IIS7,webConfigmaxRequestLength设置为1048576。

-编辑-

问题的根源:

我创建了一个 webmethod,它只接受整个 POST 作为参数,它会删除与号 (&) 之后的所有内容,所以我认为这可能是问题所在,而不是参数大小。

【问题讨论】:

  • 你想发送请求。通过 POST 方法??
  • 你在设置Content-Length HTTP请求头吗?
  • @trojanfoe:是的,抱歉。我已编辑问题以包含该代码。
  • 我看不到 postLength 的创建位置。你也设置了Content-Type HTTP 请求头吗?
  • 我已经添加了 postLength 行,但我没有 Content-Type 的任何内容。我没有意识到我需要设置它。

标签: ios iis-7 http-post nsdata maxrequestlength


【解决方案1】:

认为问题可能是缺少Content-Type HTTP 请求标头字段:

[request setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];

同样使用 UTF-8 对有效载荷进行编码:

NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

【讨论】:

  • 好的,那么该转向服务器了。您是否能够使用其他技术模仿您的 POST 请求,以验证问题不在服务器内部?
  • 我可以在服务器本地输入各个参数,虽然不是整个 POST 请求。
  • 您需要在别处模仿 POST 请求以排除服务器问题。你可能找错树了。
  • 我创建了一个 webmethod,它只接受整个 POST 作为参数,它删除了 & 符号之后的所有内容,所以我认为这可能是问题所在,而不是参数大小。
  • @Robert 另一种方法是通过[NSString stringByAddingPercentEscapesUsingEncoding:] 运行所有参数,然后再将它们添加到有效负载中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-05
  • 1970-01-01
  • 2014-12-03
  • 1970-01-01
  • 1970-01-01
  • 2011-02-25
相关资源
最近更新 更多