React Native用fetch調(diào)用.net mvc webapi(七)

用到知識:

1.?fetch的get,post

2. .net服務(wù)端api的跨域問題

3.?本地.net的服務(wù)端調(diào)試問題

注意問題:

1. 調(diào)用service時(shí)this的作用域問題

2. .net實(shí)現(xiàn)api的跨域允許,?在web.config進(jìn)行如下配置:

con

3.?直接使用vs調(diào)試模式下,使用地址localhost或者127.0.0.1發(fā)現(xiàn)react native無法調(diào)用,顯示

Network request faild。

解決辦法:配置服務(wù)系統(tǒng)到 IIS,?綁定其IP地址,?需要調(diào)試時(shí),把VS附加到IIS進(jìn)程?w3wp.exe.


4. Asp.net服務(wù)端所有的api應(yīng)該有返回值,不然在response.json()會報(bào)錯(cuò),?要么服務(wù)端必須有返回值,要么前端換方式

具體實(shí)現(xiàn):

1.?新建配置文件js用來存放api主域名地址如:

export const apiStr = 'https://facebook.github.io/';

2.?新建代碼文件IndexPageService.js用來存放調(diào)用api的代碼

a. fetch調(diào)用json文件示例代碼:

export function getMovies(callBack) {

? ? fetch(apiStr + `react-native/movies.json`)

? ? ? ? .then((response) => response.json())

? ? ? ? .then((responseJson) => {

? ? ? ? ? ? callBack(responseJson);

? ? ? ? })

? ? ? ? .catch((error) => {

? ? ? ? ? ? console.error(error);

? ? ? ? });

}

調(diào)用示例:需要注意this作用域

var _self = this;

? ? ? ? getMovies((d) => {

? ? ? ? ? ? _self.setState({

? ? ? ? ? ? ? ? dataSource: d.movies

? ? ? ? ? ? });

? ? ? ? });

b. fetch調(diào)用api的get示例

//get example

export function getExample(callBack) {

? ? fetch("http://192.168.31.41:8080/API/CRMTest/GET", {

? ? ? ? method: "GET"

? ? }).then((response) => response.json())

? ? ? ? .then((responseJson) => {

? ? ? ? ? ? callBack(responseJson);

? ? ? ? })

? ? ? ? .catch((error) => {

? ? ? ? ? ? console.error(error);

? ? ? ? });

}

c. fetch調(diào)用api的post方式

//post example

export function postExample() {

? ? var testModel = {

? ? ? ? Id: 1,

? ? ? ? Name: 'name'

? ? };

? ? fetch("http://192.168.31.41:8080/API/CRMTest/SaveData", {

? ? ? ? method: "POST",

? ? ? ? headers: {

? ? ? ? ? ? "Accept": "application/json",

? ? ? ? ? ? 'Content-Type': 'application/json',

? ? ? ? },

? ? ? ? body: JSON.stringify(testModel)

? ? }).then((response) =>

? ? ? ? response.json()

? ? ).then((responseJson) => {

? ? ? ? alert(responseJson);

? ? })

? ? ? ? .catch((error) => {

? ? ? ? ? ? console.error(error);

? ? ? ? });

}


Asp.net建WebApi簡約示例項(xiàng)目步驟







?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評論 19 139
  • 1、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,202評論 3 119
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong閱讀 22,940評論 1 92
  • 文|青梅 暗夜尋此絲竹鳥,緣是喜鵲驚足邊。 憶往前塵情愛事,觀今卻是孤影只。 夜半相思更入骨,陌路紅塵誰人知? 自...
    清小小溪閱讀 534評論 7 4
  • 男孩女孩鬧矛盾 約定背對背各走100步 回頭時(shí)如果還能看見彼此就不分手 走到99步的時(shí)候女孩終于忍不住蹲在地上哭了...
    王小貳_f12b閱讀 1,226評論 0 0

友情鏈接更多精彩內(nèi)容