0

当我尝试向特定站点发送 POST 请求时,我尝试发送的字符串被截断。当我在 Xcode 中检查字符串的长度时,它大约有 55000 个字符长。网站上收到的字符数约为 4500。这是我的代码:

-(IBAction)convert {

NSString *rosterText = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"];

NSString *params = [[NSString alloc] initWithFormat:@"roster=%@", rosterText];

NSString *paramsLength = [NSString stringWithFormat:@"%d", [params length]];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.thesite/index.php"]];

[request setHTTPMethod:@"POST"];

[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-type"];

[request setValue:paramsLength forHTTPHeaderField:@"Content-Length"];

[request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]];

NSLog(@"length = %@",paramsLength);

[webView loadRequest:request]; 

[params release];

[request release];

}

我在网站上有一个表单,您可以在其中手动插入字符串并且一切正常,所以在我看来,POST 数据的编码出现了问题。

有人知道这里出了什么问题吗?简直想不通!

非常感谢!

4

1 回答 1

0

我不确定,出了什么问题,但我建议你使用ASIHTTPRequest

ASIHTTPRequest 是一个易于使用的 CFNetwork API 包装器,它使与 Web 服务器通信的一些更繁琐的方面变得更容易。它是用 Objective-C 编写的,适用于 Mac OS X 和 iPhone 应用程序。

于 2010-09-25T13:24:47.967 回答