ReactNativeNetWorkrequestfailed
今天敲代码的时候被两个⽹络请求的问题搞了⼀天,不担⼼累⽽且⼼碎
记录⼀下,吃⼀堑长⼀智,不知道我⽼了再来看还能不能看懂
第⼀个问题:图⽚上传到服务器
这⾥代码就不贴出来了,使⽤的post提交的格式。同样的代码,在iOS上可以正常上传,在android上上传就是network request failed,我把代码对⽐了半天就是⼀模⼀样,然后报这种⽆厘头的错误着实让我⼼碎,后来android调试,iOS调试搞得我
已经快疯了,最后才发现原来是是我传的数据不对,上传图⽚到服务器使⽤的是本地图⽚URL,我忽略了这⼀点,
总觉得是代码的问题,问题的⽅向就是错误的,然后左调试右调试才发现不对的地⽅。以后记住了,像这种post提
交的请求,⽹络请求失败的话肯定是数据问题,因为这都没⾛进服务器。
第⼆个问题:普通的post请求。
这个问题能够解决纯属偶然,因为我现在还不知道原因出现在哪,情况和第⼀个⽐较像,也是post提交,然后报⼀样的
错误network request failed,,因为刚好把第⼀个问题解决,再发现这种情况我肯定想肯定是数据不对了,然后就去看数据,
看了半天和后台对⽐了半天发现不是数据问题,这下真让我醉了,⼜是对接⼝,⼜是android ,iOS对⽐调试,我感觉我今
天真是被谁诅咒了明明是⼀个很简单的问题却偏要让我做不出来,最后解决的也是出于偶然,了别的地⽅post请求的,
对⽐⼀下,然后以碰运⽓的想法写成这样
fetch(url,{
method: "POST",
headers: {
reactnative开发"Content-Type": "application/x-www-form-urlencoded"
},
body: "fileList=" + file + "&token=" + ken
})
.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"};
var url = "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();
  最后我想说今天我很不开⼼ 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。