之前使用騰訊云的接口進行ocr識別身份證,騰訊的這個叫做萬象優(yōu)圖,騰訊的做法是將圖片上傳到他們的服務(wù)器然后給你識別完成后,返回你識別后的結(jié)果,以json的形式返回給你,然而我用圖片url的形式進行請求就可以,使用上傳圖片文件的時候就出現(xiàn)了錯誤,糾結(jié)了兩天-----結(jié)果這個大坑是react-native給我挖的。
我們進行抓包找到原因是對方收到一個bucket的參數(shù),我們這邊發(fā)出的是有的,進一步追查原因,也求助了騰訊的技術(shù)支持,之后發(fā)現(xiàn)我們發(fā)過去的包里面有一個boundary的參數(shù)的值有雙引號“”
,但是安卓就沒有問題。我們就進一步尋找boundary相關(guān)的問題。
經(jīng)過查找我們發(fā)現(xiàn)boundary就是上傳文件的時候分割符,用來分隔各個參數(shù)用的。
現(xiàn)在是android使用react-native上傳url和圖片文件都可以成功
iOS使用react-native可以進行url上傳,但是圖片文件失敗
后來我們又使用了iOS原生OC進行了上傳操作,發(fā)現(xiàn)抓包出來的boundary值并沒有引號,并且上傳成功了,這就奇怪了。后來百翻掙扎之后發(fā)現(xiàn)是react-native的鍋。
請看下圖
這是我們目前使用的react-native版本
這是目前版本的react-native代碼
這是帶雙引號的,facebook買一送一,白送雙引號。
下面這是最新的react-native版本
這是最新版本的react-native代碼
最后對于react-native 我想說入坑需謹(jǐn)慎,什么Write Once, Run Anywhere
簡直就是Write Once, Adapted several times