日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 《React-Native系列》31、 Fetch發送POST請求的坑與解決方案

《React-Native系列》31、 Fetch發送POST請求的坑與解決方案

來源:程序員人生   發布時間:2016-10-06 09:00:57 閱讀次數:5500次
我們在要求http接口時候,通常都會使用get和post的方式,針對表單提交這類的要求,我們通常采取post方式。

那末在RN中的Fetch API中post提交有哪些坑呢?讓我們擼起來。


我們先來講說Server真個代碼,通常我們從Request獲得參數時的方法為:
String paraValue = request.getParameter(paraName);
我們下面說的判斷能不能獲得參數,就是依照這類方法來獲得。

在 RN中,通常我們會怎樣寫代碼呢?
方案1(不推薦)
let url = "http://127.0.0.1:8080/api/testFetch” let params = "name=admin&password=admin123”; fetch(url , { method: 'POST', headers: {}, body: params, }).then((response) => { if (response.ok) { return response.json(); } }).then((json) => { alert(JSON.stringify(json)); }).catch((error) => { console.error(error); });

此時我們發現在Server端沒法獲得到name和password的值。
換成GET試試,將params追加到url后,發現ok。那這是甚么情況呢?下面講授。

好,不行,我們就再換1種方法試試唄。
方案2(不推薦):
let params = {"name":"admin","password":"admin123"}; fetch(url , { method: 'POST', headers: {}, body:JSON.stringify(params), }).then((response) => { if (response.ok) { return response.json(); } }).then((json) => { alert(JSON.stringify(json)); }).catch((error) => { console.error(error); });
我們直接將params封裝成1個JSON對象,然后在body里將JSON對象轉成字符串傳過去,發現然并卵,Server端還是獲得不到值。


好,我們不兜圈子了,直接說明緣由。
其實,方案1和方案2都是直接在body里傳遞了1個字符串,在Server端獲得body的方式以下:
StringBuilder buffer = new StringBuilder(); BufferedReader reader = beat.getRequest().getReader(); String line; while ((line = reader.readLine()) != null) { buffer.append(line); } String body = buffer.toString();
通過這類方法我們可以獲得到傳入的字符串。
既然能獲得到字符串,那末我們也能夠拿到我們傳入的值了,可以轉JSON、或按&切割字符串,只不過這類解決方案好像有點挫啊!!!

或許你會問在jquery中,我們就是依照方案1這類方式做的啊,怎樣好使呢?
答:由于參數 "name=admin&password=admin123” 在jquery中,傳入對象框架會自動封裝成formData的情勢,fetch沒有這個功能。

終極方案(推薦使用):

既然fetch不會自動轉FormData,那我們自己new1個FormData,直接傳給body。
在FormData中也能夠傳遞字節流實現上傳圖片的功能。參考:http://blog.csdn.net/codetomylaw/article/details/52446786
let formData = new FormData(); formData.append("name","admin"); formData.append("password","admin123"); fetch(url , { method: 'POST', headers: {}, body: formData, }).then((response) => { if (response.ok) { return response.json(); } }).then((json) => { alert(JSON.stringify(json)); }).catch((error) => { console.error(error); });
這樣我們就能夠在Server端獲得到name和password的值了。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩免费视频一区二区 | 欧美精品一区二区三区蜜臀 | 亚洲欧美一区二区三区四区 | 久久免费一区 | 国产区在线观看 | 精品国产一区二区三区不卡蜜臂 | 久久久久久久久久久久91 | 国产黄在线播放 | 欧美一二三四 | 精品久久久中文字幕 | 999久久国精品免费观看网站 | 国产精品日韩一区 | 岛国片在线观看 | 国产成人免费av一区二区午夜 | 精品国产成人 | 国产一区二区三区不卡在线观看 | 国产精品久久久av久久久 | 久久成人免费 | 精品久久久久久久人人人人传媒 | 亚洲精品视频自拍 | 99一区二区| 久久福利| 国产精品网站在线 | 午夜日韩在线 | 精品综合久久久久久99粉芽 | 黄色片视频在线观看 | 中文视频在线 | 亚洲成人精品一区二区 | 国产青青草 | 一区二区三区高清 | 久久精品成人一区二区三区蜜臀 | 久久久久久久综合 | 老头搡老女人毛片视频在线看 | 久久午夜电影 | 国产精品美女久久久 | 国产主播精品 | 久久精品91| 一区二区日本 | 欧美日韩在线一区二区三区 | 欧美一区二区三区免费观看 | 日韩三级 |