Post 如何在NestJS中使用HttpModule发布表单数据

Post 如何在NestJS中使用HttpModule发布表单数据,post,axios,nestjs,mern,httpmodule,Post,Axios,Nestjs,Mern,Httpmodule,我正在尝试从Instagram API获取访问令牌。我想把尸体作为表格数据发送。这是我的密码。这是行不通的。但在《邮递员》中效果很好 async getAccessTokenByCode(code: string): Promise<string> { const baseUrl = config.get('authorize.baseUrl'); const clientId = config.get('basic.clientId'); const c

我正在尝试从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);
    }
}
异步getAccessTokenByCode(代码:字符串):承诺{ 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\u令牌` const form=new FormData(); 表单.append('client_id',clientId); 表单.append('client_secret',clientSecret); 表单.append('grant\u type',grantType); form.append('redirect_uri',redirectUri); 格式。追加('代码',代码); 试一试{ const response=wait this.httpService.post(url,{data:form},{headers:form.getHeaders()}).toPromise(); 返回响应数据; }捕获(错误){ console.log(错误); } }
如何使用NestJS HttpModule正确发送post数据???

以下是我的工作代码:

  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;
  }
异步getAuthToken(){ const url=this.configService.get('AUTHTOKEN_url'); var bodyFormData=新FormData(); bodyFormData.append('SCOPE',this.configService.get('SCOPE'); bodyFormData.append('EMAIL\u ID',this.configService.get('EMAIL\u ID')); bodyFormData.append('PASSWORD',this.configService.get('PASSWORD'); const response=等待this.httpService.post( 网址, bodyFormData, {headers:bodyFormData.getHeaders()} ).toPromise(); console.log(response.data); 返回响应数据; }
第二个参数不是json,在您的案例中,它只是数据

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

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

不要忘记导入表单数据包:从“表单数据”导入表单数据;