2017-03-23 17 views
1

OCR Space APIでOCRを実行しようとしていますが、403エラーが発生します。私は私のサンプルコードの下に与えられた。 ionic2プロジェクトでそれを試して、カメラオプションから画像データを供給しています。ocr space apiがbase64の画像データに対して403を返します

let urlSearchParams = new URLSearchParams(); 
     urlSearchParams.append('base64Image', `data:image/jpeg;base64,${imagedata}`); 
     let body = urlSearchParams.toString() 
    console.log('jsonbody is::' + JSON.stringify(body)); 
    let headers = new Headers({ 
     'Content-Type': 'application/x-www-form-urlencoded' , 
     'apikey': this.apikey }); 

    let options = new RequestOptions({ headers: headers }); 

    return this.http 
     .post(this.ocrServiceURL, body, options) 
     .map(res => { 
      console.log("Response json is:: " + JSON.stringify(res.json())); 
      return <string>(res.json().ParsedResults.ParsedText) 
      }) 
     .catch(this.handleError); 

私は以下のようなものを使用している場合は、代わりにURLSearchParamsの、私は単に何のファイルまたはURLまたはbase64のデータが提供されていないことをバックエラーが出ます。

var body = {base64Image: `data:image/jpeg;base64,${imagedata}`}; 

データを提供するための適切なフォーマットについて教えてもらえますか?

詳細はお問い合わせください。

+0

'imagedata'変数にデータがありますか?あなたはそれを記録しようとしましたか、それとも警告として表示しましたか?どうやってこの機能に送りますか? –

+0

@suraj - はい。データがあり、console.logステートメントで確認しました。それは型anyのオブジェクトとして作成され、メソッドに送られます。ユーザーが写真を撮り、「写真を使う」をクリックすると、イメージデータが戻ってきてこのメソッドに送信されます。 – csharpnewbie

答えて

0

私は問題はコンテンツタイプが

'Content-Typeの' すべきではないということだと思います。 'アプリケーション/ x-www-form-urlencodedで'

しかし

「のContent-Type ':' multipart/form-data '

online ocr docsでもそうです。これで問題は解決しますか?

+0

私は 'multipart/form-data'と 'text/plain; charset = UTF-8'を試してみましたが、動作しません。それでも403の禁じられたエラーが出ます。何かばかな間違いをしているかもしれない。一般的に 'text/plain; charset = UTF-8'は画像をアップロードするための他のAPIとうまく動作しますが、このocrスペースAPIではうまく動作しません。 – csharpnewbie

+0

試用リクエストキーが抑制されたため、403が原因であることがわかりました。したがって、エラーは実際には 'ファイルがアップロードされていないか、URLまたはbase64が提供されていません'です。しかし、私は画像のbase64データを提供しています。 – csharpnewbie

+0

面白い...あなたのコードは実際に動作するのですか? ;-) – Tienkamp

関連する問題