美文网首页ionic2Ionic2开发
Ionic2实战-Http请求模块设计

Ionic2实战-Http请求模块设计

作者: 逃离火星 | 来源:发表于2017-08-30 22:34 被阅读197次

前言

对于大部分App来说,都有大量前后端交互的需求,而Ionic2基于AngularJS2也提供了完善的Http通信模块,可以让我们方便地进行前后台的通信。

步骤

Http通信作为业务模块都写在了service文件中,以下步骤都是针对service的操作。

1、导入相关包

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

2、初始化header消息头

  headers: Headers;
  requestOptions: RequestOptions;

  constructor(
    private events: Events,
    private http: Http,
    private helper: Helper
  ) {
    this.headers = new Headers({'X-Requested-With': 'XMLHttpRequest'});
    this.requestOptions = new RequestOptions({headers: this.headers, withCredentials: true});
  }

3、准备Http请求发送函数

  loadProductPriceList(params): Promise<CoalPrice> {
    let api: string = this.helper.getAPP('product/getProductPriceList');
    let data: Object = params;

    return this.http.post(api, data, this.requestOptions)
    .toPromise()
      .then(response => response.json())
      .catch(this.handleError);
  }

  // handle error
  private handleError(error: any) {
    return Promise.reject(error.message || error);
  }

4、调用发送函数

  loadProductPriceList(params) {

    this.coalService.loadProductPriceList(params)
    .then(ret => {
      this.productPriceList = ret;
    }, (data) => {

    });
  }

完整代码附录

import { Injectable } from '@angular/core';
import { Events } from 'ionic-angular';
import { Http, Headers, RequestOptions } from '@angular/http';

import { CoalPrice } from '../models/coalPrice.model';
import { Helper } from '../../common/services/helper.service';


@Injectable()
export class CoalService {
  headers: Headers;
  coalPrices: CoalPrice[] = [];
  requestOptions: RequestOptions;

  userUpdateAvatarAPI: string = this.helper.getAPI('user/update-avatar');


  //
  // constructor
  constructor(
    private events: Events,
    private http: Http,
    private helper: Helper
  ) {
    this.headers = new Headers({'X-Requested-With': 'XMLHttpRequest'});
    this.requestOptions = new RequestOptions({headers: this.headers, withCredentials: true});
  }


  getProductTypeList(data) {
    let api: string = this.helper.getAPP('product/getProductTypeList');

    return this.http.post(api, data, this.requestOptions)
      .toPromise()
      .then((response) => {
        return response.json();
      })
      .catch(this.handleError);
  }

  //
  loadProductPriceList(params): Promise<CoalPrice> {
    let api: string = this.helper.getAPP('product/getProductPriceList');
    let data: Object = params;

    return this.http.post(api, data, this.requestOptions)
    .toPromise()
      .then(response => response.json())
      .catch(this.handleError);
  }

  //
  // handle error
  private handleError(error: any) {
    return Promise.reject(error.message || error);
  }
}

相关文章

  • Ionic2实战-Http请求模块设计

    前言 对于大部分App来说,都有大量前后端交互的需求,而Ionic2基于AngularJS2也提供了完善的Http...

  • Pyhton网络请求库——urllib库

    Python内置HTTP请求库之urllib 其中包含的4个模块: -request:最基本的HTTP请求模块,用...

  • 关于c程序通讯协议设计的一些记录

    协议过程最好设计为请求响应、无状态式,类http,这样通讯模块设计起来简单,至于senssion的管理可以交给上层...

  • 基本库的使用urllib

    使用Urllib 它是python内置的http请求模库,分四个模块: request模块,最基本的HTTP请求模...

  • nodejs模块

    nodejs模块 nodejs系统自带的模块:http:协议请求模块;创建服务器:http.createServe...

  • Angularjs Httpclient post请求 数据格式

    ionic Http请求模块主要基于Angularjs 下两个模块: 1.{Http}from'@angular/...

  • Urllib库

    Urllib是python内置的http请求库,分为以下几个模块 urllib.request:请求模块 urll...

  • Urllib是什么

    Urllib是python内置的HTTP请求库包括以下模块urllib.request 请求模块urllib.er...

  • RESTful

    一、restful 它是一种设计风格,设计原则,约束http请求路径的设计,约定http请求如何发起 二、api ...

  • urllib库详解

    python内置的http请求库 urllib.request 请求模块urlib.error ...

网友评论

    本文标题:Ionic2实战-Http请求模块设计

    本文链接:https://www.haomeiwen.com/subject/svxfjxtx.html