NSURLSession POST请求返回HTML网页代码

时间:2015-10-19 06:48:55

标签: html asp.net objective-c post nsurlsession

我正在尝试将用户输入提交到网页,然后检索返回的数据。该网页采用人名,并从数据库中返回他/她的信息。当用户单击按钮然后将用户的输入发送到该网页时,我尝试发出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];
}

1 个答案:

答案 0 :(得分:0)

POST主体不太可能只包含该值。机会是,它应该包含

键=值&安培;键2 =值&安培; KEY3 =值3 ...

其中key是输入的名称,value是该输入的值,采用URL编码格式。 (有关如何对值进行URL编码的详细信息,请参阅"编码URL数据"在URL Session Programming Guide中。)