Проблемы с HTTP в ionic 3 - PullRequest
       8

Проблемы с HTTP в ionic 3

0 голосов
/ 24 апреля 2018

Я делаю приложение с ionic 3 и хочу использовать модуль HTTP.Я использовал официальную документацию по Ionic Framework.

Ссылка: https://ionicframework.com/docs/native/http/

Я сделал эти команды:

$ ionic cordova plugin add cordova-plugin-advanced-http
$ npm install --save @ionic-native/http

Пока все хорошо.Затем я добавил этот модуль в свой app.module.ts файл, и код выглядит так:

import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';    
import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
import { ResultstatsPage } from '../pages/resultstats/resultstats';
import { HTTP } from '@ionic-native/http';

@NgModule({
  declarations: [
    MyApp,
    HomePage,
    ResultstatsPage
  ],
  imports: [
    BrowserModule,   
    IonicModule.forRoot(MyApp),
    HTTP    
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage,
    ResultstatsPage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]
})
export class AppModule {}

Я сделал функцию с HTTP следующим образом:

getStats(){
   this.http.get(this.url, {}, this.apikey)
  .then(data => {

    console.log(data.status);
    console.log(data.data); // data received by server
    console.log(data.headers);

  })
  .catch(error => {

    console.log(error.status);
    console.log(error.error); // error message as string
    console.log(error.headers);

  });
  }

Когда я запускаюВ приложении с ионной подачей я получаю сообщение об ошибке (см. скриншот)

error

Я пробовал несколько решений, но это не помогло решить проблему.Может ли кто-нибудь указать мне правильное направление?

Ответы [ 2 ]

0 голосов
/ 24 апреля 2018

в соответствии с этим: https://ionicframework.com/docs/native/http/

вы импортируете не import { HTTP } from '@ionic-native/http'; в app.module.ts, а в компонент (точнее, в службу), который будет выполнять вызов API.

в угловом эквиваленте будет (3 разных файла) (в app.module.ts)

 import {HttpClientModule} from '@angular/common/http';
 ...
 providers: [
    HttpClientModule,
    ...

in api.service.ts:

import {HttpClient, HttpErrorResponse, HttpHeaders, HttpParams, HttpResponse} from '@angular/common/http';
...
getItems(): any{
  const apiURL = `${this.API_URL}/items`;
  this.items =
   this._http
    .get(apiURL)
    .catch(this.handleError);
  return this.items;
}

handleError(error: HttpErrorResponse) {
  console.log('an http get error happened.');
  console.error(error);
  let errorMessage;
  if (error.error instanceof Error) {
    errorMessage = `An error occurred: ${error.error.message}`;
  } else {
    errorMessage = `Server returned code: ${error.status}, error message is: ${error.message}`;
  }
  console.error(errorMessage);
  return errorMessage;
}

и my.component.that.calls.api:

this.apiservice.getItems().subscribe(returnData => {
  if(returnData !== null && returnData !== undefined) if(returnData .length > 1){
    // do something with returnData 
    console.log(returnData);
  }
}, (error) => console.log(error), () => {});
0 голосов
/ 24 апреля 2018

попробуйте импортировать HttpModule:

imports: [
    BrowserModule,   
    IonicModule.forRoot(MyApp),
    HttpModule    
  ],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...