我想通过获取某种响应或确认来对ip地址进行ping操作,以获取响应是否存在。
ping() {
return this.http.get('http://192.168.2.101')
}
this.deviceService.ping().subscribe(result => {
console.log(result)
})
但出现错误
请指导!
答案 0 :(得分:2)
以下是一个示例,如果有人必须从客户端执行此操作,则一个用例可能是您必须知道客户端是否在线(例如在Ionic应用程序中)。
中的完整示例import { HttpClient } from "@angular/common/http";
import { first } from "rxjs/operators";
import { Subscription } from 'rxjs';
...
private source = interval(3000);
...
this.source.subscribe(() => {
this._http.get('https://www.google.com', { observe: 'response' })
.pipe(first())
.subscribe(resp => {
if (resp.status === 200 ) {
console.log(true)
} else {
console.log(false)
}
}, err => console.log(err));
});
first()对于仅获取第一个值很重要,因为interval将发出新请求,这是我们避免内存泄漏的方式。
{观察:'response'} 是我们告诉httpClient返回完整的http对象而不是仅返回正文的方式,这样我们可以获取状态代码。