【问题标题】:How to POST form-data using HttpModule in NestJS如何在 NestJS 中使用 HttpModule 发布表单数据
【发布时间】:2021-02-04 05:06:16
【问题描述】:

我正在尝试从 Instagram API 获取访问令牌。我想将正文作为表单数据发送。这是我的代码。这是行不通的。但它在邮递员中工作正常。

async getAccessTokenByCode(code: string): Promise<string> {

    const baseUrl = config.get('authorize.baseUrl');
    const clientId =  config.get('basic.clientId');
    const clientSecret = config.get('basic.clientSecret');
    const grantType = config.get('basic.grant_type');
    const redirectUri = config.get('basic.redirect_uri');

    const url = `${baseUrl}/oauth/access_token`

    const form = new FormData();
    form.append('client_id', clientId);
    form.append('client_secret', clientSecret);
    form.append('grant_type', grantType);
    form.append('redirect_uri', redirectUri);
    form.append('code', code);


    try {
        const response = await this.httpService.post(url, { data: form }, {  headers: form.getHeaders() }).toPromise();
        return response.data;
    } catch (error) {
        console.log(error);
    }
}

如何使用 NestJS HttpModule 正确发送 post 数据??

【问题讨论】:

    标签: post axios nestjs mern httpmodule


    【解决方案1】:

    这是我的工作代码:

      async getAuthToken() {
        const url = this.configService.get<string>('AUTHTOKEN_URL');
        var bodyFormData = new FormData();
        bodyFormData.append('SCOPE', this.configService.get<string>('SCOPE'));
        bodyFormData.append('EMAIL_ID', this.configService.get<string>('EMAIL_ID'));
        bodyFormData.append('PASSWORD', this.configService.get<string>('PASSWORD'));
    
        const response = await this.httpService.post(
          url,
          bodyFormData,
          { headers: bodyFormData.getHeaders() }
        ).toPromise();
        console.log(response.data);
        return response.data;
      }
    

    第二个参数不是 json,它只是你的数据

    【讨论】:

    【解决方案2】:

    我不得不手动格式化数据。我不确定如何在 NestJS 中正确地做到这一点。例如,我还没有找到我会在 NodeJS 中使用的模块,例如 qs。

    const data = `client_id=${clientId}&client_secret=${clientSecret}&grant_type=${grantType}&redirect_uri=${redirectUri}&code=${code}`;
    

    【讨论】:

      猜你喜欢
      • 2018-03-29
      • 1970-01-01
      • 2018-12-25
      • 2021-02-16
      • 1970-01-01
      • 2017-02-19
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      相关资源
      最近更新 更多