2

我的 iPad 应用程序将文件列表作为字符串参数fileList发送到如下 Web 方法:

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];

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

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

-编辑-

问题的根源:

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

4

1 回答 1

2

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

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

还使用 UTF-8 对有效负载进行编码:

NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
于 2013-02-28T10:49:27.847 回答