Javascript React native 0.62.0-Android上文件上载的网络请求错误
我已经将react native升级到了0.62,并且我只在Android上遇到了网络错误的问题,iOS可以正常工作 我使用FormData对象填充格式化为Javascript React native 0.62.0-Android上文件上载的网络请求错误,javascript,android,react-native,file-upload,Javascript,Android,React Native,File Upload,我已经将react native升级到了0.62,并且我只在Android上遇到了网络错误的问题,iOS可以正常工作 我使用FormData对象填充格式化为 const data = new FormData(); // On Android i add file protocol to file path - file://... data.append('photos', { uri: 'file:///data/.../my-image.jpeg', type: 'im
const data = new FormData();
// On Android i add file protocol to file path - file://...
data.append('photos', {
uri: 'file:///data/.../my-image.jpeg',
type: 'image/jpeg',
name: 'my-image.jpeg'
});
和其他文本数据
data.append('description', 'my long description...');
有人有这个问题吗
我尝试了多个Android SDK 27、28、29,但都遇到了相同的问题:(
问题是,如果我不上传图像,但只有文本数据请求可以正常工作:(
任何建议欢迎:)?发布此bec我使用react-native ssl固定和react-native映像裁剪选择器使其工作 FormData
file: {
uri: image.path,
type: image.mime,
name: 'image.jpg',
fileName: 'image.jpg',
size: image.size,
},
还有取回
fetch(url, {
method: 'POST',
sslPinning: { certs: ['cert'] },
body: {
formData: formData,
},
headers: {
Authorization:
'Bearer Token',
Accept: 'application/json; charset=utf-8',
'Content-type': 'multipart/form-data; charset=UTF-8',
},
})
这是因为Flipper网络插件。 文件
android/app/src/debug/java/com//ReactNativeFlipper.java
38 NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
39 NetworkingModule.setCustomClientBuilder(
40 new NetworkingModule.CustomClientBuilder() {
41 @Override
42 public void apply(OkHttpClient.Builder builder) {
43 // builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
44 }
45 });
46 client.addPlugin(networkFlipperPlugin);
在Flipper版本0.39.0和更高版本中,此问题已得到修复。我刚刚将Flipper更新到版本0.40.0,它工作正常
initializeFlipper(this, getReactNativeHost().getReactInstanceManager())
builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
var formData = new FormData();
formData.append('UserId', 'abc@abc.com');
formData.append('VisitId', '28596');
formData.append('EvidenceCapturedDate', '09/10/2019 13:28:20');
formData.append('EvidenceCategory', 'Before');
formData.append('EvidenceImage', {
uri: Platform.OS === 'android' ? `file:///${path}` : `/private${path}`,
type: 'image/jpeg',
name: 'image.jpg',
});
axios({
url: UrlString.BaseUrl + UrlString.imageUpload,
method: 'POST',
data: formData,
headers: {
Accept: 'application/json',
'Content-Type': 'multipart/form-data'
},
})
.then(function (response) {
console.log('*****handle success******');
console.log(response.data);
})
.catch(function (response) {
console.log('*****handle failure******');
console.log(response);
});
谢谢你的帮助!这可能会对其他人有所帮助,因为我切换到了模块。它对表单数据和文件都很好。我也会尝试一下。我遇到了同样的问题……你能解决同样的问题吗?