ionic2 / 3 получить и сообщение не работает - PullRequest
0 голосов
/ 27 мая 2018

Я новичок в ionic2 (но в программировании в целом) и пробую свои силы в ionic2.Теперь я пытаюсь сделать простое получение / публикацию для своих веб-сервисов (запущенных локально в процессе разработки), и я просто не могу просто вызвать сервисы.

Забавно, что вызовы get и post делаютне вызывает никаких ошибок / предупреждений / чего-либо еще.


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

import { BackgroundGeolocation } from '@ionic-native/background-geolocation';

import { Geolocation, Geoposition } from '@ionic-native/geolocation';

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

import { Observable } from 'rxjs';

import 'rxjs/add/operator/map';

import 'rxjs/add/operator/catch';

import 'rxjs/add/operator/toPromise';import 'rxjs/add/operator/filter';

@Injectable()
export class LocationTracker {
    public watch: any;
    public lat: number = 0;
    public lng: number = 0;
    public http: Http;

    constructor(public zone: NgZone, public backgroundGeolocation: BackgroundGeolocation,
        public geolocation: Geolocation, http: Http) {
            this.http = http;
    }

    public postLocationData(lat: number, lng: number)  {
        var JSONObject = {"latitude": "" + lat, "longitude": "" + lng };

        console.log("Posting: " + JSON.stringify(JSONObject));
        let headerOptions: any = { 'Content-Type': 'application/json' };
        let headers = new Headers(headerOptions);

        // The simple get service. Curl from command line works
        this.http.get("http://192.168.1.2:8080/location/new1/")
        .map((response: Response) => {
            console.log('Response is: ' + response);
        })
        .catch((this.handleErrorObservable));

        // The simple post service. Curl from command line works. Note that in the service, the post param is captured as a String (Java) and then I am casting the string to an Object using Gson
        this.http.post("http://192.168.1.2:8080/location/new/", JSON.stringify(JSONObject), new RequestOptions({ headers: headers }))
        .map((response: Response) => {
            console.log('Response is: ' + response);
        })
        .catch((this.handleErrorObservable));
    }

    startTracking() {
        // lat and lng are populated here
    }

    stopTracking() {
        // something ...
    }
    private handleErrorObservable (error: Response | any) {
        console.error('Error in handleErrorObservable: ' + ( error.message || error ) );
        return Observable.throw(error.message || error);
    }
}

Аналогичный фрагмент также появляется в пастбине, который я разместил (https://pastebin.com/f39vW1hD). Любая помощь действительно приветствуется.

1 Ответ

0 голосов
/ 27 мая 2018

Без подписки или асинхронного канала вы не можете видеть отправленные запросы.

public postLocationData(lat: number, lng: number)  {
    var JSONObject = {"latitude": "" + lat, "longitude": "" + lng };

    console.log("Posting: " + JSON.stringify(JSONObject));
    let headerOptions: any = { 'Content-Type': 'application/json' };
    let headers = new Headers(headerOptions);

    // The simple get service. Curl from command line works
    this.http.get("http://192.168.1.2:8080/location/new1/")
    .map((response: Response) => {
        console.log('Response is: ' + response);
    })
    .subscribe(data => console.log(data));

    // The simple post service. Curl from command line works. Note that in the service, the post param is captured as a String (Java) and then I am casting the string to an Object using Gson
    this.http.post("http://192.168.1.2:8080/location/new/", JSON.stringify(JSONObject), new RequestOptions({ headers: headers }))
    .map((response: Response) => {
        console.log('Response is: ' + response);
    })
    .subscribe(data => console.log(data));
}
...