Как передать 3 аргумента в бэкэнд с запросом `POST`? - PullRequest
0 голосов
/ 25 марта 2019

Согласно бэкэнду, мне нужно передать 3 аргумента через почтовый запрос, эта бэкэнд-функция:

public ResponseModel Post([FromBody] CourseFileUpload item, string fileName, Stream fileToUpload) 

Теперь я пытаюсь передать аргумент так:

uploadFile(uploadData:ModelToFileSteam):Observable<ModelToFileSteam> {
        const fileName = uploadData.fileName;
        console.log('file name is', fileName);
        const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Access-Control-Allow-Origin':'*' });
        return this.http.post<ModelToFileSteam>(environment.baseUrl+`CourseFileUpload`, uploadData.fileToUpload, uploadData.fileName, uploadData.uploadStream)
        .pipe(
            map(data => {
                return data;
            } ),
            catchError(this.handleError)
        )
    }

Но, получив ошибку, не смог передать 3 аргумента. Как правильно это сделать?

Кто-нибудь мне поможет?

Ответы [ 2 ]

3 голосов
/ 26 марта 2019

Я предложу обернуть все в один объект.И отправьте его бэкенду.

Или просто отправьте uploadData

return this.http.post<ModelToFileSteam>(environment.baseUrl+`CourseFileUpload`, uploadData)
        .pipe(
            map(data => {
                return data;
            } ),
            catchError(this.handleError)
        )

А в бэкэнде вы можете получить uploadDate наподобие req.body.uploadData Для проверки вы можете console.log(uploadData.fileName);

1 голос
/ 25 марта 2019

это мой рабочий пример

this.http.post<Customer>(this.base_url + 'v1/customers', client, this.getHeaders());

Где клиент - объект клиента, а this.getHeaders ():

  getHeaders() {
    return {
      headers: new HttpHeaders({
        'Content-Type':  'application/json; charset=utf-8',
      })
    };
  }

Удачи!

...