首页 > 解决方案 > 如何传递请求模型以获取 Angular 7/8 上的 API?

问题描述

我有 Get Api 来获取用户数据,我可以将请求模型传递给基于请求模型的搜索用户列表。它在 Postman 上运行良好,但是当我尝试在 Angular 7 和 8 中实现相同时,它不起作用。

请指导我如何实施。

我的实现如下

邮差

    URL = http://localhost:64888/api/Users/SearchUsers     
    Header : Content-Type = application/json

    Body = 
    {
        "firstname" : "value",
        "lastname" : "value",
        "emailid" : "value",
        "usertype" : "value",
    }

邮递员结果:它工作正常并提供用户列表

请求模型

export class UserRequest {  
     firstname : string;
     lastname : string;
    emailid : string;
    usertype : string;
    }

用户服务

    export class UserService {

      constructor(private http: HttpClient) { }

      SearchUsers(requestParam : UserRequest) : Observable<any>{  

        const httpOptions = {
          headers: { 
          'Content-Type': 'application/json',
          'Authorization' : 'Bearer Tokenvalue'
          },
          params: requestParam
        };

        return this.http.get("http://localhost:64888/api/Users/SearchUsers", httpOptions); 
      }
    }

用户组件

   export class UserComponent implements OnInit {

     constructor(private userService : UserService) { }

     ngOnInit() {

       var requestParam : UserRequest;
       requestParam.firstname = "r";
       requestParam.lastname = "";
       requestParam.emailid = "";
       requestParam.usertype = "user";

       this.userService.SearchUsers(requestParam)
         .subscribe( 
           data => {
             console.log(data);
           }
          )
     }
   }

标签: angularangular7angular8

解决方案


如果您想在正文中发送参数,然后使用 POST 请求,主要是在 GET 请求中,参数在 url 中发送,请参阅此链接, 请参阅此

像这样转换您的请求

 SearchUsers(requestParam : UserRequest) : Observable<any>{  

    const httpOptions = {
      headers: { 
      'Content-Type': 'application/json',
      'Authorization' : 'Bearer Tokenvalue'
      }
    };

    return this.http.get("http://localhost:64888/api/Users/SearchUsers?firstname=value&lastname=value&emailid=value&userid=value", httpOptions); 
  }

推荐阅读