对接数据交互API(Ionic前端)——发送GET、POST请求

/project_name/src/providers/rest/rest.tsrest.ts

"""

import { Observable } from 'rxjs/Rx';

import { Injectable } from '@angular/core';

import { Http, Response, Headers, RequestOptions } from '@angular/http';

import 'rxjs/add/operator/map';

import 'rxjs/add/operator/catch';

@Injectable()

export class RestProvider {

    constructor(public http: Http) {

        //console.log('Hello RestProvider Provider');

    }

    // 登录url

    private apiUrlLogin ='http://127.0.0.1:5000/api/login';

    // 获取用户信息url

    private apiUrlUserInfo ='http://127.0.0.1:5000/api/get_user_info';

    // 登录

    login(mobile, password): Observable {

        let pramas = JSON.stringify({

            "telephone": mobile,

            "password": password,

        });

        return this.postUrlReturn(this.apiUrlLogin, pramas)

    }

    // 获取用户信息

    getUserInfo(userId): Observable {

        return this.getUrlReturn(this.apiUrlUserInfo +"?userid=" + userId);

    }

    // 全局获取 HTTP 请求的方法

    // get方法

    private getUrlReturn(url:string): Observable {

        return this.http.get(url)

        .map(this.extractData)

        .catch(this.handleError);

    }

    // post方法

    private postUrlReturn(url:string, pramas:string): Observable {

        let headers = new Headers({

            'Content-Type': 'application/x-www-form-urlencoded'

        });

        let options =new RequestOptions({

            headers: headers

        });

        return this.http.post(url, pramas, options)

        .map(this.extractData)

        .catch(this.handleError);

      }

    // 处理接口返回的数据,处理成 json 格式

    private extractData(res: Response) {

        let body = res.json();

        return JSON.parse(JSON.stringify(body)) || {};

    }

    // 处理请求中的错误,考虑了各种情况的错误处理并在 console 中显示 error

    private handleError(error: Response |any) {

        let errMsg:string;

        if (errorinstanceof Response) {

            const body = error.json() ||'';

            const err = body.error || JSON.stringify(body);

            errMsg =`${error.status} - ${error.statusText ||''} ${err}`;

        }else {

            errMsg = error.message ? error.message : error.toString();

        }

        console.error(errMsg);

        return Observable.throw(errMsg);

   }

}

参考资料

Ionic3 前端JS发送post请求部分

ionic3 post请求方法


对接数据交互API(Flask后端)——获取GET、POST请求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值