Quota invoice identification
Interface description
Online debugging
Request Description
|
|
---|---|
|
|
|
|
---|---|
|
|
|
|
|
|
|
---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
curl -i -k ' https://aip.baidubce.com/rest/2.0/ocr/v1/quota_invoice?access_token= [Call the token obtained from the authentication interface] ' --data 'image=[Picture Base64 encoding, UrlEncode required]' -H 'Content-Type:application/x-www-form-urlencoded'
# encoding:utf-8
import requests import base64 ''' Quota invoice identification ''' request_url = " https://aip.baidubce.com/rest/2.0/ocr/v1/quota_invoice "
#Open picture file in binary mode f = open ( '[Local file]' , 'rb' ) img = base64 . b64encode ( f . read ( ) ) params = { "image" : img } access_token = '[Token obtained by calling the authentication interface]' request_url = request_url + "?access_token=" + access_token headers = { 'content-type' : 'application/x-www-form-urlencoded' } response = requests . post ( request_url , data = params , headers = headers )
if response :
print ( response . json ( ) )
package com . baidu . ai . aip ;
import com . baidu . ai . aip . utils . Base64Util ;
import com . baidu . ai . aip . utils . FileUtil ;
import com . baidu . ai . aip . utils . HttpUtil ;
import java . net . URLEncoder ;
/** *Quota invoice identification */
public class QuotaInvoice {
/** *Tool class required in important tip code *FileUtil, Base64Util, HttpUtil, GsonUtils * https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72 * https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2 * https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3 * https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3 *Download */
public static String quotaInvoice ( ) {
//Request url
String url = " https://aip.baidubce.com/rest/2.0/ocr/v1/quota_invoice " ;
try {
//Local file path
String filePath = [Local file path] ;
byte [ ] imgData = FileUtil . readFileByBytes ( filePath ) ;
String imgStr = Base64Util . encode ( imgData ) ;
String imgParam = URLEncoder . encode ( imgStr , "UTF-8" ) ;
String param = "image=" + imgParam ;
//Note that the purpose here is to simplify the encoding and obtain access_token for each request. The online environment access_token has an expiration time, and the client can cache it and retrieve it after expiration.
String accessToken = "[Token obtained by calling the authentication interface]" ;
String result = HttpUtil . post ( url , accessToken , param ) ;
System . out . println ( result ) ;
return result ;
} catch ( Exception e ) { e . printStackTrace ( ) ;
}
return null ;
}
public static void main ( String [ ] args ) {
QuotaInvoice . quotaInvoice ( ) ;
}
}
# include <iostream>
# include <curl/curl.h>
//Download link of libcurl library: https://curl.haxx.se/download.html
//Download link of jsoncpp library: https://github.com/open-source-parsers/jsoncpp/
const static std :: string request_url = " https://aip.baidubce.com/rest/2.0/ocr/v1/quota_invoice " ;
static std :: string quotaInvoice_result ;
/** *The curl sends the callback function called by the http request. The returned body in json format is parsed in the callback function, and the parsing result is stored in the global static variable *See the libcurl document for @ param parameter definitions *@ return See the libcurl document for the definition of the return value */
static size_t callback ( void * ptr , size_t size , size_t nmemb , void * stream ) {
//The obtained body is stored in ptr and converted to string format first quotaInvoice_result = std :: string ( ( char * ) ptr , size * nmemb ) ;
return size * nmemb ;
}
/** *Quota invoice identification *@ return If the call is successful, 0 will be returned. If an error occurs, other error codes will be returned */
int quotaInvoice ( std :: string & json_result , const std :: string & access_token ) { std :: string url = request_url + "?access_token=" + access_token ; CURL * curl = NULL ; CURLcode result_code ;
int is_success ; curl = curl_easy_init ( ) ;
if ( curl ) {
curl_easy_setopt ( curl , CURLOPT_URL , url . data ( ) ) ;
curl_easy_setopt ( curl , CURLOPT_POST , one ) ; curl_httppost * post = NULL ; curl_httppost * last = NULL ;
curl_formadd ( & post , & last , CURLFORM_COPYNAME , "image" , CURLFORM_COPYCONTENTS , "【base64_img】" , CURLFORM_END ) ;
curl_easy_setopt ( curl , CURLOPT_HTTPPOST , post ) ;
curl_easy_setopt ( curl , CURLOPT_WRITEFUNCTION , callback ) ; result_code = curl_easy_perform ( curl ) ;
if ( result_code != CURLE_OK ) {
fprintf ( stderr , "curl_easy_perform() failed: %s\n" ,
curl_easy_strerror ( result_code ) ) ; is_success = one ;
return is_success ;
} json_result = quotaInvoice_result ;
curl_easy_cleanup ( curl ) ; is_success = zero ;
} else {
fprintf ( stderr , "curl_easy_init() failed." ) ; is_success = one ;
}
return is_success ;
}
<? php
/** *Initiate http post requests (REST APIs) and obtain the results of REST requests * @param string $url * @param string $param * @return - http response body if succeeds, else false. */
function request_post ( $url = '' , $param = '' )
{
if ( empty ( $url ) || empty ( $param ) ) {
return false ;
}
$postUrl = $url ;
$curlPost = $param ;
//Initialize curl
$curl = curl_init ( ) ;
curl_setopt ( $curl , CURLOPT_URL , $postUrl ) ;
curl_setopt ( $curl , CURLOPT_HEADER , zero ) ;
//The result is required to be a string and output to the screen
curl_setopt ( $curl , CURLOPT_RETURNTRANSFER , one ) ;
curl_setopt ( $curl , CURLOPT_SSL_VERIFYPEER , false ) ;
//Post submission method
curl_setopt ( $curl , CURLOPT_POST , one ) ;
curl_setopt ( $curl , CURLOPT_POSTFIELDS , $curlPost ) ;
//Run curl
$data = curl_exec ( $curl ) ;
curl_close ( $curl ) ;
return $data ;
}
$token = '[Token obtained by calling the authentication interface]' ;
$url = ' https://aip.baidubce.com/rest/2.0/ocr/v1/quota_invoice?access_token= ' . $token ;
$img = file_get_contents ( '[Local file path]' ) ;
$img = base64_encode ( $img ) ;
$bodys = array (
'image' = > $img
) ;
$res = request_post ( $url , $bodys ) ;
var_dump ( $res ) ;
using System ;
using System . IO ;
using System . Net ;
using System . Text ;
using System . Web ;
namespace com . baidu . ai {
public class QuotaInvoice
{
//Quota invoice identification
public static string quotaInvoice ( )
{
string token = "[Token obtained by calling the authentication interface]" ;
string host = " https://aip.baidubce.com/rest/2.0/ocr/v1/quota_invoice?access_token= " + token ;
Encoding encoding = Encoding . Default ;
HttpWebRequest request = ( HttpWebRequest ) WebRequest . Create ( host ) ; request . Method = "post" ; request . KeepAlive = true ;
//Base64 encoding of pictures
string base64 = getFileBase64 ( [Local picture file] ) ;
String str = "image=" + HttpUtility . UrlEncode ( base64 ) ;
byte [ ] buffer = encoding . GetBytes ( str ) ; request . ContentLength = buffer . Length ; request . GetRequestStream ( ) . Write ( buffer , zero , buffer . Length ) ;
HttpWebResponse response = ( HttpWebResponse ) request . GetResponse ( ) ;
StreamReader reader = new StreamReader ( response . GetResponseStream ( ) , Encoding . Default ) ;
string result = reader . ReadToEnd ( ) ; Console . WriteLine ( "Quota invoice identification:" ) ; Console . WriteLine ( result ) ;
return result ;
}
public static String getFileBase64 ( String fileName ) {
FileStream filestream = new FileStream ( fileName , FileMode . Open ) ;
byte [ ] arr = new byte [ filestream . Length ] ; filestream . Read ( arr , zero , ( int ) filestream . Length ) ;
string baser64 = Convert . ToBase64String ( arr ) ; filestream . Close ( ) ;
return baser64 ;
}
}
}
Return description
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
"log_id" : two billion four hundred and eighty million eight hundred and ninety-six thousand two hundred and ninety-five ,
"words_result_num" : three ,
"words_result" : {
"invoice_code" : "132081490320" ,
"invoice_number" : "01275486" ,
"invoice_rate" : "Fifty yuan only"
"invoice_rate_lowercase" : "100.00" ,
"invoice_code" : "161034127200" ,
"province" : Shaanxi ,
}
}