在Objective-C中发送POST请求

时间:2015-10-26 15:41:28

标签: objective-c post tfhpple

我需要向网站发送一个POST请求以加载更多页面结果(我要解析大约200个结果(使用TFHpple),但页面只显示40,你需要单击按钮上的“显示更多结果”以加载更多(有4页))。)。

每当一个或两个地址不同而另一个地址相同时,为什么呢?所有这些都应该是不同的。

我试图在网上搜索如何发送POST请求,但我尝试但是没有成功:(任何人都可以帮我搞清楚吗?

一般信息:

Remote Address:212.117.156.55:80

Request URL:http://www.d.co.il/DOTNET/ajax/GetMoreResults

Request Method:POST

Status Code:200 OK

File Name: GetMoreResults

如果需要任何其他信息,请写信给我,我会给你。

非常感谢!

我做得对吗?

NSURL *url=[NSURL URLWithString:@"http://www.d.co.il/SearchResults/?query=%D7%A9%D7%95%D7%A4%D7%A8%D7%A1%D7%9C&type=tag&location="];
NSData *data=[NSData dataWithContentsOfURL:url];

TFHpple *parser=[TFHpple hppleWithHTMLData:data];

NSString *XpathQueryString=@"//p[contains(@class, \"result-contact-address\")]";

NSArray *Nodes=[parser searchWithXPathQuery:XpathQueryString];


for (int i=0; i<4; i++)
{
    NSError *error;

    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
    NSURL *postUrl = [NSURL URLWithString:@"http://www.d.co.il/DOTNET/ajax/GetMoreResults"];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:postUrl
                                                           cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                       timeoutInterval:60.0];

    [request addValue:@"GetMoreResults" forHTTPHeaderField:@"Content-Type"];
    [request addValue:@"GetMoreResults" forHTTPHeaderField:@"Accept"];

    [request setHTTPMethod:@"POST"];
    NSDictionary *mapData = [[NSDictionary alloc] initWithObjectsAndKeys: @"80", @"batchNumber",
                             @"IOS TYPE", @"typemap",
                             nil];
    NSData *postData = [NSJSONSerialization dataWithJSONObject:mapData options:0 error:&error];
    [request setHTTPBody:postData];


    NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

    }];

    [postDataTask resume];
}
int i=1;
for (TFHppleElement *element in Nodes) {
    NSString *address = element.text;
    NSLog(@"%@,%d",address,i);
    i++;
}

0 个答案:

没有答案