首页 > 代码库 > React Native NetWork request failed
React Native NetWork request failed
今天敲代码的时候被两个网络请求的问题搞了一天,不担心累而且心碎
记录一下,吃一堑长一智,不知道我老了再来看还能不能看懂
第一个问题:图片上传到服务器
这里代码就不贴出来了,使用的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 = http://www.mamicode.com/new FormData();"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();
最后我想说今天我很不开心
React Native NetWork request failed