React Native用fetch调用.net mvc webapi(七)

用到知识:

1. fetch的get,post

2. .net服务端api的跨域问题

3. 本地.net的服务端调试问题

注意问题:

1. 调用service时this的作用域问题

2. .net实现api的跨域允许, 在web.config进行如下配置:

con

3. 直接使用vs调试模式下,使用地址localhost或者127.0.0.1发现react native无法调用,显示

Network request faild。

解决办法:配置服务系统到 IIS, 绑定其IP地址, 需要调试时,把VS附加到IIS进程 w3wp.exe.


4. Asp.net服务端所有的api应该有返回值,不然在response.json()会报错, 要么服务端必须有返回值,要么前端换方式

具体实现:

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

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

2. 新建代码文件IndexPageService.js用来存放调用api的代码

a. fetch调用json文件示例代码:

export function getMovies(callBack) {

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

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

        .then((responseJson) => {

            callBack(responseJson);

        })

        .catch((error) => {

            console.error(error);

        });

}

调用示例:需要注意this作用域

var _self = this;

        getMovies((d) => {

            _self.setState({

                dataSource: d.movies

            });

        });

b. fetch调用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调用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简约示例项目步骤







©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,347评论 19 139
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,039评论 3 119
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,680评论 1 92
  • 文|青梅 暗夜寻此丝竹鸟,缘是喜鹊惊足边。 忆往前尘情爱事,观今却是孤影只。 夜半相思更入骨,陌路红尘谁人知? 自...
    清小小溪阅读 3,372评论 7 4
  • 男孩女孩闹矛盾 约定背对背各走100步 回头时如果还能看见彼此就不分手 走到99步的时候女孩终于忍不住蹲在地上哭了...
    王小贰_f12b阅读 4,771评论 0 0