【问题标题】:HTTP GET request with HttpAuth Params带有 HttpAuth 参数的 HTTP GET 请求
【发布时间】:2019-04-03 14:23:33
【问题描述】:

我需要在我的 Angular 解决方案中发出 HTTP 请求。 我已经使用 HTTP 客户端创建了一个服务。

但是,我似乎无法添加正确的标题。

以下是 python 中工作请求的样子:

requests.get('https://api.github.com/user', auth=HTTPBasicAuth('user', 'password'))

如何将其“翻译”为适合我的示例的正确请求? :

public getFile() {
  return this.http.get('https://api.github.com/user', {headers :myGetHeaders});
}

【问题讨论】:

    标签: angular typescript http


    【解决方案1】:

    您可以创建一个从 httpclient 传递的httpOptions object,如下所示。它本质上是一个映射,您可以在其中定义各种请求标头。

    import { HttpHeaders } from '@angular/common/http';
    
    const httpOptions = {
      headers: new HttpHeaders({
        'Content-Type':  'application/json',
        'Authorization': 'my-auth-token'
      })
    };
    

    现在你可以做

    return this.http.get('https://api.github.com/user', httpOptions );
    

    您可以参考thisthis了解更多详情。

    【讨论】:

    • 感谢您的帮助。您的回答对我的代码很有帮助,但我仍然无法让我的请求正常工作。我需要在某处传递我的“用户名”和“密码”作为参数。
    • @Zako 你的意思是查询参数还是路径参数?
    • 如果是查询参数,你可以使用 ?username='user'&password='pass'。对于路径参数,顾名思义,您可以直接在路径中传递它们。但出于安全原因,您应该避免将用户名和密码作为路径参数发送
    • 是的,我认为问题在于我尝试这样做的方式。我读过传递令牌而不是凭据可能更容易。将尝试这种方式: new httpHeaders({'Authorization' : 'zfkgn4432qyxnrsmdl3xdbrsf2lnsrmba4deu6vyri3mwlhbpyju', 'Content-Type': 'application/json'});谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多