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 = 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();

  最后我想說今天我很不開心  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM