network reactnative_React Native NetWork request failed

本文记录了在React Native开发中遇到的两个网络请求问题。第一个问题是图片上传时,iOS正常,Android出现network request failed,原因是使用了本地图片URL。解决方法是确保提交的数据正确。第二个问题是普通POST请求同样报错,排查数据无误后,发现是因为缺少Content-Type为application/x-www-form-urlencoded的设置。通过修改请求方式和包裹数据解决了问题。
摘要由CSDN通过智能技术生成

今天敲代码的时候被两个网络请求的问题搞了一天,不担心累而且心碎

记录一下,吃一堑长一智,不知道我老了再来看还能不能看懂

第一个问题:图片上传到服务器

这里代码就不贴出来了,使用的post提交的格式。同样的代码,在iOS上可以正常上传,在android上上传就是network request failed,

我把代码对比了半天就是一模一样,然后报这种无厘头的错误着实让我心碎,后来android调试,iOS调试搞得我

已经快疯了,最后才发现原来是是我传的数据不对,上传图片到服务器使用的是本地图片URL,我忽略了这一点,

总觉得是代码的问题,问题的方向就是错误的,然后左调试右调试才发现不对的地方。以后记住了,像这种post提

交的请求,网络请求失败的话肯定是数据问题,因为这都没走进服务器。

第二个问题:普通的post请求。

这个问题能够解决纯属偶然,因为我现在还不知道原因出现在哪,情况和第一个比较像,也是post提交,然后报一样的

错误network request failed,,因为刚好把第一个问题解决,再发现这种情况我肯定想肯定是数据不对了,然后就去看数据,

看了半天和后台对比了半天发现不是数据问题,这下真让我醉了,又是对接口,又是android ,iOS对比调试,我感觉我今

天真是被谁诅咒了明明是一个很简单的问题却偏要让我做不出来,最后解决的也是出于偶然,找了别的地方post请求的,

对比一下,然后以碰运气的想法写成这样

fetch(url,{

method: "POST",

headers: {

"Content-Type": "application/x-www-form-urlencoded"

},

body: "fileList=" + file + "&token=" + this.state.token

})

.then((response) => response.json())

一开始我是这样写的,这不是一样的,就是大概给个格式,因为我不想重写了,

这个地方和上面的代码不同的地方就是这里用的表单,然后用的options包起来了我们的数据,

对,你猜的没错,就是因为这个options的问题,可能我说的不对,但是我的发现就是因为这个问题,

我不用options 包起来像上面的代码一样直接请求就OK

let formData = new FormData();

formData.append('file', {

uri: this.state.localimageurl,

type: 'image/jpeg',

name: 'photo.jpg'

});

console.log(formData);

let options ={};

options.body = formData;

options.headers={"Content-Type":"multipart/form-data"};

options.method='POST';

var url = "http://10.4.19.105:8081/aist-filesvr-web/webUploader/uploadPicture";

fetch(url,options)

.then((response)=> response.json())

.then((responseData)=>{

console.warn(responseData);

}) .catch((error) => { console.warn(error); }) .done();

最后我想说今天我很不开心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值