Ошибка с заголовками NSMutableRequest - PullRequest
0 голосов
/ 29 января 2012

У меня была проблема с NSMutableURLRequest, я хочу перевести это

curl -b $cookie -F "data=foo" -F "user=bar"  http://some/stuff.cgi -H 'X-Requested-With: XMLHttpRequest

мой код

        NSString *params = [NSString stringWithFormat:@"data=%@&user=bar", aUrl];

        NSURL *url = [NSURL URLWithString:[[NSString alloc] initWithFormat:[NSString stringWithFormat:@"http://%@:%d/stuff.cgi", _host, _port]]];

        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url 
                                                               cachePolicy:NSURLRequestUseProtocolCachePolicy 
                                                           timeoutInterval:5.0];

        [request setHTTPMethod:@"POST"];
        [request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding ]];
        [request setValue:[NSString stringWithFormat:@"http://%@/stuff.php", _host] forHTTPHeaderField:@"Referer"];
        [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
        [request setValue:@"XMLHttpRequest" forHTTPHeaderField:@"X-Requested-With"];
        NSArray *availableCookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://%@", _host]]];
        NSDictionary *headers = [NSHTTPCookie requestHeaderFieldsWithCookies:availableCookies];
        [request setAllHTTPHeaderFields:headers];
        NSLog(@"headers: %@", [request allHTTPHeaderFields]);
        NSURLResponse *response;
        NSError *error;
        NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
        ...

но это не работает, я делаю поиск без результатов и не знаю, в чем проблема.

Спасибо.

1 Ответ

0 голосов
/ 07 февраля 2012

Решено, просто укажите длину

[request setValue:[[NSString alloc] initWithFormat:@"%d", [params length]] forHTTPHeaderField:@"Content-Length"];
...