【发布时间】: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-LengthHTTP请求头吗? -
@trojanfoe:是的,抱歉。我已编辑问题以包含该代码。
-
我看不到
postLength的创建位置。你也设置了Content-TypeHTTP 请求头吗? -
我已经添加了
postLength行,但我没有Content-Type的任何内容。我没有意识到我需要设置它。
标签: ios iis-7 http-post nsdata maxrequestlength