【问题标题】:Google docs OCR implementation iphone谷歌文档 OCR 实现 iphone
【发布时间】:2011-10-27 10:52:08
【问题描述】:

我正在尝试将 google docs OCR 功能集成到我的 iPhone 应用程序中。以下是 google docs 文档的内容。

要对 .pdf、.jpg、.png 或 .gif 文件执行 OCR,请在上传文件时包含 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 的响应。

【问题讨论】:

    标签: iphone ocr google-docs


    【解决方案1】:

    而不是使用:

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

    用途:

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

    注意从addValue:setValue: 的更改以及forHTTPHeaderField: 字符串中冒号的删除。

    对其余的 addValue: 行执行相同操作。

    addValue: 追加,而setValue: 替换。

    【讨论】:

    • 现在它说未经授权的标题。我需要在下一行的授权字段中输入什么? [请求 addValue:auth.accessToken forHTTPHeaderField:@"Authorization:"];
    • Google 推荐使用 OAuth 2.0,详情见这里:code.google.com/apis/documents/docs/3.0/…
    • 阅读文档后,我能够使用 ClientLogin 从谷歌获取 Auth 令牌,但是在发布文档时,它返回以下错误。 令牌无效 TITLE>

      令牌无效

      错误401

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多