2015-10-19 104 views
0

我试图提交用户输入到网页,然后检索返回的数据。这个网页取一个人的名字,并从数据库中返回他/她的信息。当用户点击一个按钮,然后将用户输入发送到该网页时,我试图发出POST请求。但是当我打印出返回的数据时,它只是该网页的html源代码,只有没有javaScript。我如何更改/添加下面的函数来获取人员的信息页面?我花了很多时间,但仍然无法弄清楚。请帮帮我!谢谢!NSURLSession POST请求返回HTML网页代码

-(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]; 
} 

回答

0

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

键=值&键2 =值& KEY3 =值3 ...

,其中关键是输入的名称和值是输入的值,在URL-编码格式。 (有关如何对值进行URL编码的详细信息,请参见URL Session Programming Guide中的“编码URL数据”。)