React Native NetWork request failed

來源:互聯網
上載者:User

標籤:url   content   var   解決   cat   本地圖片   append   war   loader   

今天敲代碼的時候被兩個網路請求的問題搞了一天,不擔心累而且心碎

記錄一下,吃一塹長一智,不知道我老了再來看還能不能看懂

第一個問題:圖片上傳到伺服器

這裡代碼就不貼出來了,使用的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();

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

React Native NetWork request failed

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.