Реализация OCR документов Google iphone

Я пытаюсь интегрировать функцию распознавания документов Google в свое приложение для iPhone. Ниже приведено то, что говорится в документации Google Docs.

Чтобы выполнить распознавание текста в файле .pdf, .jpg, .png или .gif, включите параметр ocr=true при загрузке файла:

POST /feeds/default/private/full?ocr=true
GData-Version: 3.0
Authorization: <your authorization header here>
Content-Length: 1984
Content-Type: image/png
Slug: OCRd Doc

... png contents here ...

Теперь я использую следующий код, чтобы сделать этот почтовый запрос HTTP.

    responseData = [[NSMutableData data] retain];

    NSURL *url = [NSURL URLWithString:@"http://docs.google.com/feeds/default/private/full?ocr=true"];
    UIImage *img = [UIImage imageNamed:@"Submit-top.png"];

    NSData *data = UIImagePNGRepresentation(img);
    int a = [data length];
    NSString *imgLength = [NSString stringWithFormat:@"%d" ,a];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url];
    [request setHTTPBody:data];


    [request setHTTPMethod:@"POST"];
    [request addValue:@"3.0" forHTTPHeaderField:@"GData-Version:"];
    [request addValue:auth.accessToken forHTTPHeaderField:@"Authorization:"];
    [request addValue:imgLength forHTTPHeaderField:@"Content-Length:"];
    [request addValue:@"image/png" forHTTPHeaderField:@"Content-Type:"];
    [request addValue:@"OCRd Doc" forHTTPHeaderField:@"Slug:"];




    [[NSURLConnection alloc] initWithRequest:request delegate:self];

    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *str = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
    NSLog(@"%@", str);

но я получаю ответ с кодом состояния 400.


person uzair shahzad    schedule 15.08.2011    source источник


Ответы (1)


Вместо того, чтобы использовать:

[request addValue:@"3.0" forHTTPHeaderField:@"GData-Version:"];

Использовать:

[request setValue:@"3.0" forHTTPHeaderField:@"GData-Version"];

Обратите внимание на изменение с addValue: на setValue: и удаление двоеточия в строке forHTTPHeaderField:.

Сделайте то же самое для остальных ваших addValue: линий.

addValue: добавляет, а setValue: заменяет.

person InsertWittyName    schedule 15.08.2011
comment
Теперь пишет неавторизованный заголовок. Что мне нужно указать в поле авторизации в строке ниже? [запросить addValue:auth.accessToken forHTTPHeaderField:@Authorization:]; - person uzair shahzad; 16.08.2011
comment
Google рекомендует использовать OAuth 2.0. Подробнее см. здесь: code.google. .com/apis/documents/docs/3.0/ - person InsertWittyName; 16.08.2011
comment
Прочитав документацию, я смог получить токен аутентификации от Google с помощью ClientLogin, но при публикации документа он возвращает ошибку ниже. BGCOLOR=#FFFFFF TEXT=#000000› ‹H1›Недействительный токен‹/H1› ‹H2›Ошибка 401‹/H2› ‹/BODY› ‹/HTML› - person uzair shahzad; 16.08.2011