我试图提交用户输入到一个网页,然后检索返回的数据。这个网页取一个人的名字,并从数据库中返回他/她的信息。当用户单击按钮时,我试图发出POST请求,然后将用户的输入发送到该网页。但是当我打印返回的数据时,它只是那个网页的html源代码,只是没有javaScript。如何更改/添加以下功能以获取该人员的信息页面?我花了很多时间,但还是没弄明白。请帮帮我!谢谢你!
-(void) sendHTTPPost{
NSString* input = nameTextField.text;
//1
NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://find.pitt.edu"]];
[req setHTTPMethod:@"POST"];
//2
NSData* postData = [input dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
//3
NSString *postLength = [NSString stringWithFormat:@"%lu",(unsigned long)[postData length]];
[req setValue:postLength forHTTPHeaderField:@"Content-Length"];
[req setValue:@"text/html" forHTTPHeaderField:@"Content-type"];
[req setHTTPBody:postData];
//4
NSURLSession *session = [NSURLSession sharedSession];
//5
NSURLSessionDataTask *task = [session dataTaskWithRequest:req
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
// Do something with response data here - convert to JSON, check if error exists, etc....
if(error != nil){
NSLog(@"error: %@", error);
}
else{
NSString* str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", str);
NSLog(@"response = %@", response);
}
}];
[task resume];
}
POST主体不太可能只包含值。很有可能,它应该包含
键= value& key2 = value2& key3 = value3…
,其中key是输入的名称,value是该输入的值,采用url编码格式。(有关如何对值进行URL编码的详细信息,请参阅URL会话编程指南中的"编码URL数据"。)