我正在尝试执行http.get请求以从本地目录获取文件,此时我只想在console.log中获取请求api的响应。 getFile()
显示console.log,但调用http
,不确定在angular2中如何使用http
;我知道在angular1中它使用.then
作为响应。
import { Http, HTTP_PROVIDERS } from '@angular/http';
getFile() {
this.http.get('//localhost:1337/getFile');
console.log('get me the file');
}
Api终点:
app.get('/getFile', function(req, res) {
var contents = fs.readFileSync('journey.xml');
console.log('Reading File....' + contents);
res.send(contents);
});
答案 0 :(得分:1)
请注意,您需要将文件的请求类型更改为blob,假设您不是简单地获取纯文本文件。
之类的东西this.http.get(url,{responseType: 'blob'}).subscribe(...)
否则,您将收到错误,因为角度尝试将响应解析为json。还有其他类型,您可以阅读here。
对于您的情况,我认为responseType将是' text'
答案 1 :(得分:0)
您需要订阅http服务返回的observable:
import { Http, HTTP_PROVIDERS } from '@angular/http';
import 'rxjs/add/operator/map';
getFile() {
this.http.get('//localhost:1337/getFile')
.map(response => response.text())
.subscribe(data => console.log('get me the file', data))
}
答案 2 :(得分:0)
尝试使用subscribe
.subscribe(
res => this.somename= res.json(),
error => console.log(error));
OR
.subscribe(
function(response) { console.log("Success Response" + response)},
function(error) { console.log("Error happened" + error)},
function() { console.log("the subscription is completed")}
);
答案 3 :(得分:0)
http.get方法返回HTTP响应的Observable 你可能想尝试这样的事情:
'lstDevices.OfType(Of Printer).First().iAge = 10
'Console.WriteLine(lstDevices.OfType(Of Printer).First().iAge)
Printer.iAge = 10
Console.WriteLine(Printer.iAge)