首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角6 httpclient错误详细信息

角6 httpclient错误详细信息
EN

Stack Overflow用户
提问于 2018-07-27 12:12:51
回答 1查看 1.2K关注 0票数 3

我有一个角6应用程序,当我提出一个http请求时:

代码语言:javascript
复制
this.myService.login(this.form.email.value, this.form.password.value)
    .pipe(first())
    .subscribe(
         data => 
                {
                       //do something on success
                },
         error => 
                {
                     //here the response `error` if I use console.log(error)
                     //shows just Bad request if my API returns 404. 
                     //How can I access other properties of the error, like 
                     //the body?
                }
);

如果HTTP调用返回错误,我如何访问错误的其他属性?

如果出现错误,APi将返回404坏请求,但也会有一个JSON主体:

代码语言:javascript
复制
{
    Status: "Error",
    Body : "Something happened"
}

如何在我的错误处理中访问它?

EN

回答 1

Stack Overflow用户

发布于 2019-01-01 14:06:08

你可以这样做(用角6测试)

首先调用其他类中的api,即(api助手服务)

代码语言:javascript
复制
MyApiCall(data:any) {
    return this.http.post('Your api url', data);
  }

在上面的方法中,不要将.map.subscribe添加到http方法

现在,从要与API交互的组件类调用此方法。

代码语言:javascript
复制
formSubmit() {
     // your logic
      this.apiservice.MyApiCall(apivalues)
        .subscribe(
          data => {
            let httpresponse = data;
            let response = data.json();
            if (httpresponse.status == 200) {
               // logic when success
              }
              else {
               // else
              }
            }
          }, err => {
            let httpresponse = err;
            let response = err.json();
            if (httpresponse.status == 0) {
                //if api is dead or couldn't reach
            }
            else {
              //for other request , 401 404 etc
            }
          });
    }
  }

为了获得成功密码,

代码语言:javascript
复制
    let httpresponse = data;

^^这将获得httpresponse给您(状态、代码、httpurl、其他api信息)

代码语言:javascript
复制
    let response = data.json();

^^这将获得api创建和发送的数据(实际业务响应)。

有错误的逻辑也是如此。

代码语言:javascript
复制
    let httpresponse = err;

    let response = err.json();

^1行获取基本http响应^2行,给出在api (用户自定义主体)中创建的错误消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51557720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档