Я рассмотрел все возможные решения этой проблемы по переполнению стека, проблемам Github, сути и тому подобному. Ни один из них не работал.
В основном я пытаюсь загрузить изображение, снятое с помощью response-native-camera, на Java API, и оно работает на iOS как на симуляторе, так и на физическом устройстве.
function handleOnPictureTaken (image) {
const imageName = image.uri.split('/').pop()
const imageExtension = imageName.split('.').pop()
const imageType = `image/${imageExtension}`
const source = { uri: image.uri, type: imageType, name: imageName }
onPhotoSelected(source)
}
function onPhotoSelected (image) {
const photoData = new FormData()
image = {
...image,
uri: image.uri.replace('file://', '')
}
photoData.append('file', image)
uploadFile(photoData)
}
function uploadFile(image) {
const config = {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'multipart/form-data'
},
credentials: 'include'
}
if (method === 'POST' || method === 'PUT') {
if (config.headers['Content-Type'] === 'application/json') {
config.body = JSON.stringify(data)
} else {
config.body = data
}
}
return fetch(url, config).then(checkJSON)
.then(res => res.text())
.then(parseJSON)
.catch(rejectRequest)
}
Это отлично работает на iOS. Но на Android я продолжаю получать Network request failed
, как показано ниже
Stack trace: TypeError: Network request failed
at anonymous (http://192.168.0.103:8081/index.bundle?platform=android&dev=true&minify=false:28469:31)
at call (native)
at dispatchEvent (http://192.168.0.103:8081/index.bundle?platform=android&dev=true&minify=false:34597:31)
at setReadyState (http://192.168.0.103:8081/index.bundle?platform=android&dev=true&minify=false:33681:33)
at __didCompleteResponse (http://192.168.0.103:8081/index.bundle?platform=android&dev=true&minify=false:33508:29)
at apply (native)
at anonymous (http://192.168.0.103:8081/index.bundle?platform=android&dev=true&minify=false:33618:52)
at apply (native)
at emit (http://192.168.0.103:8081/index.bundle?platform=android&dev=true&minify=false:6202:42)
at apply (native)
at __callFunction (http://192.168.0.103:8081/index.bundle?platform=android&dev=true&minify=false:5626:49)
at anonymous (http://192.168.0.103:8081/index.bundle?platform=android&dev=true&minify=false:5348:31)
at __guard (http://192.168.0.103:8081/index.bundle?platform=android&dev=true&minify=false:5580:15)
at callFunctionReturnFlushedQueue (http://192.168.0.103:8081/index.bundle?platform=android&dev=true&minify=false:5347:21)
Я изо всех сил пытаюсь выполнить эту работу. Физическое устройство Android подключено к той же сети Wi-Fi. Нормальные запросы POST работают. Но не удается загрузить только файлы.
Если у кого-то есть предложения, дайте мне знать.