网络请求失败对 https 图片上传做出原生反应 Android
network request failed react native on https image upload Android
我正在尝试通过获取 api 上传图像,但在真实设备 android 上出现 网络请求失败 错误。
我也尝试了很多来自 google 的建议,但对我没有任何帮助。
我的依赖项是:
"react-native": "0.62.0",
"axios": "^0.19.2",
"form-data": "^3.0.0",
"react": "16.11.0",
"react-redux": "^7.2.0",
"redux": "^4.0.5",
"redux-thunk": "^2.3.0"
我的图片上传片段:
const imagePick = () => {
const formData = new FormData();
try {
const options = {
title: 'Select Avatar',
storageOptions: {
skipBackup: true,
path: 'images',
},
};
ImagePicker.showImagePicker(options, (response) => {
formData.append('avatar', {
uri: response.uri,
type: response.type,
name: response.fileName,
})
fetch(url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'multipart/form-data',
'Authorization': `Bearer ${authToken}`
},
body: formData
})
.then(res => {
console.log(res.status)
})
.catch(e => {
console.log(e)
})
});
} catch (e) {
toast("Unable to upload profile photo")
}
}
我也在使用安全 https url;
我也遇到了同样的问题,但我想这个问题与 axios 库无关,而是因为 React Native 本身。
这里提到comment,是因为Flipper.
因此,在 React Native 开始工作之前,您可以在 MainApplication.java
中的下方评论
initializeFlipper(这个, getReactNativeHost().getReactInstanceManager());
评论,把//放在上一行
前面
//初始化Flipper(this, getReactNativeHost().getReactInstanceManager());
同样的问题很久了。答案很简单。该代码适用于 iOS 但有趣的是在 android.
上失败
对于 android,更改自:
formData.append('avatar', {
uri: response.uri,
type: response.type,
name: response.fileName,
})
至:
formData.append('avatar', {
uri: response.uri,
type: `image/${response.type}`,
name: response.fileName,
})
对我来说,图像 mime 类型导致 axios 失败。在 iOS 上没有图像 mime 类型也能正常工作。
我正在尝试通过获取 api 上传图像,但在真实设备 android 上出现 网络请求失败 错误。 我也尝试了很多来自 google 的建议,但对我没有任何帮助。
我的依赖项是:
"react-native": "0.62.0",
"axios": "^0.19.2",
"form-data": "^3.0.0",
"react": "16.11.0",
"react-redux": "^7.2.0",
"redux": "^4.0.5",
"redux-thunk": "^2.3.0"
我的图片上传片段:
const imagePick = () => {
const formData = new FormData();
try {
const options = {
title: 'Select Avatar',
storageOptions: {
skipBackup: true,
path: 'images',
},
};
ImagePicker.showImagePicker(options, (response) => {
formData.append('avatar', {
uri: response.uri,
type: response.type,
name: response.fileName,
})
fetch(url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'multipart/form-data',
'Authorization': `Bearer ${authToken}`
},
body: formData
})
.then(res => {
console.log(res.status)
})
.catch(e => {
console.log(e)
})
});
} catch (e) {
toast("Unable to upload profile photo")
}
}
我也在使用安全 https url;
我也遇到了同样的问题,但我想这个问题与 axios 库无关,而是因为 React Native 本身。
这里提到comment,是因为Flipper.
因此,在 React Native 开始工作之前,您可以在 MainApplication.java
中的下方评论initializeFlipper(这个, getReactNativeHost().getReactInstanceManager());
评论,把//放在上一行
前面//初始化Flipper(this, getReactNativeHost().getReactInstanceManager());
同样的问题很久了。答案很简单。该代码适用于 iOS 但有趣的是在 android.
上失败对于 android,更改自:
formData.append('avatar', {
uri: response.uri,
type: response.type,
name: response.fileName,
})
至:
formData.append('avatar', {
uri: response.uri,
type: `image/${response.type}`,
name: response.fileName,
})
对我来说,图像 mime 类型导致 axios 失败。在 iOS 上没有图像 mime 类型也能正常工作。