谷歌文档的OCR实现iPhone

3

我希望在我的iPhone 应用中集成Google Docs OCR功能。以下是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 POST请求。

    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。

1个回答

2

代替使用:

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

使用:

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

注意从addValue:变为setValue:,并且在forHTTPHeaderField:字符串中去除了冒号。

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

addValue:是追加,而setValue:是替换。


1
现在它显示未经授权的标头。在下面这行中,我需要在授权字段中放什么?[request addValue:auth.accessToken forHTTPHeaderField:@"Authorization:"]; - uzair shahzad
Google建议使用OAuth 2.0,详情请参见此处:http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#Auth - InsertWittyName
1
阅读文档后,我能够使用ClientLogin从谷歌获取授权令牌,但在发布文档时,它返回以下错误。<HTML> <HEAD> <TITLE>Token invalid</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000"> <H1>Token invalid</H1> <H2>Error 401</H2> </BODY> </HTML> - uzair shahzad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接