0

I’m trying to make an HTTP request from a Ionic app to to ocr.space API.

this is the code I wrote, the base64image comes from the Camera plugin and is correctly formatted:

let base64Image = 'data:image/jpeg;base64,' + imageData;

     let data = "base64Image=" + base64Image;

     this.http.post("https://api.ocr.space/parse/image",data,{
       headers: new HttpHeaders().set('Content-Type','application/x-www-form-urlencoded')
                                 .set('apikey',this.APIKEY),
     })
                .subscribe((res)=> console.log(res))

However the response I’m getting is that the format of the image is not correct (not true). What am I doing wrong? Thanks for the help!

  • Thanks for the comment. I've already seen the answer linked by you but I don't know how to implement that "transformrequest" function using the Angular post method I copied in my question. Do you have any idea how I could do that? Thanks again for the help – Francesco Di Stefano Nov 25 '17 at 17:26

1 Answers1

1

I don't know if I'm supposed to answer my own question. The solution was quite simple and analyzing the answer proposed by Nic with more attention was the key. Following is the simple edit of the original code(just added encodeURIComponent method on the data parameter): now it's working flawlessly.

let base64Image = 'data:image/jpeg;base64,' + imageData;
 let data = encodeURIComponent("base64Image")+"="+encodeURIComponent(base64Image);
 this.http.post("https://api.ocr.space/parse/image",data,{
   headers: new HttpHeaders().set('Content-Type','application/x-www-form-urlencoded')
                             .set('apikey',this.APIKEY),
 })
            .subscribe((res)=> console.log(res))