我有以下代码:
NSString *post = @"i hope this gets there";
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
NSString *postLength = [NSString stringWithFormat:@"%d", [post length]];
NSURL *url = [NSURL URLWithString:@"http://www.oneoftwosites.com"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];
[NSURLConnection connectionWithRequest:request delegate:nil];
//potential response
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
//convert response so that it can be LOG'd
NSString *returnString = [[NSString alloc] initWithData:response encoding:NSASCIIStringEncoding];
NSLog(@"RETURN: %@", returnString);
我已经用 2 个不同的网站对其进行了测试:http: //www.htmlcodetutorial.com/cgi-bin/mycgi.pl和http://instagraph.me/post,将这些网址替换为http://www.oneoftwosites.com
. 出于某种原因,它只适用于第一个网站(用 perl 编写),而不适用于第二个网站(用 .php 编写)。
有谁知道为什么会这样?它似乎很愚蠢,它有时只会起作用,但我真的不知道为什么它不适用于第二个网站(我没有看到代码,但我确实看到了一些示例输出)。
编辑:我补充说
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
并尝试了几种不同的类型,但仍然没有运气