我正在尝试将帖子请求发送到谷歌api进行文本检测。但首先我必须拍一张照片然后我可以用axios发送这张照片google api。
以下代码用于拍照。
takePictureAndCreateAlbum = async () => {
let uri = this.camera.takePictureAsync({
base64: true
}).then(data => {
this.sendVisionOCR(data)
}).catch(err => {
console.log("err", err)}
)
const asset = await MediaLibrary.createAssetAsync(uri);
console.log('asset', asset);
MediaLibrary.createAlbumAsync('Expo', asset)
.then(() => {
Alert.alert('Album created!')
})
.catch(error => {
Alert.alert('An Error Occurred!')
});
};
}
以下代码用于发送请求google api。
sendVisionOCR(data){
let body = {
"requests":[
{
"image":{
"content": data
},
"features": [
{
"type": "DOCUMENT_TEXT_DETECTION",
"maxResults": 1
}
]
}
]
}
axios.post('https://vision.googleapis.com/v1/images:annotate?key=xxXXxx', body)
.then((response) => {
console.log("worked", response)
})
.catch((err) => console.log("err", err))
}
当我运行我的代码时,我收到了这些错误;
可能的未处理承诺拒绝(id:0):
错误:参数“localUri”无效。它必须是一个字符串!
但有时如果我改变我的代码一小部分,我看到无限循环。它正在尝试发送base64文件。
"axios": "^0.18.0",
"expo": "^31.0.2",
"react": "16.5.0",
而且我也试图获取操作。它不工作?
有什么问题?为什么axios不工作?
我找到了解决方案。实际上我的代码是正确的。还有一个问题。当我运行代码时,编码图像base64格式需要很长时间,有时似乎只能工作。有new问题。