Как вызвать команду curl в Angular с использованием httpClient - PullRequest
0 голосов
/ 23 октября 2018

У меня есть команда curl, которая загружает файл .zip в хранилище nexus.Я хочу назвать эту команду на Angular.Мне интересно, как это должно быть сделано.Можете ли вы помочь мне.команда: curl -v -u имя пользователя: пароль --upload-файл test.zip http://use08nexus01p:8081/nexus/content/repositories//

1 Ответ

0 голосов
/ 23 октября 2018

Параметр curl --upload-file использует запрос PUT для передачи данных на ваш сервер.Параметр -u использует базовую аутентификацию.Существует множество способов отправить похожий запрос с помощью Angular.Скорее всего, у вас будет служба, которая сделает эту работу за вас.Ниже приведен один из возможных способов сделать это.Обратите внимание, что приведенная ниже сервисная функция возвращает наблюдаемое, на которое необходимо подписаться в компоненте.Возможно что-то вроде следующего:

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { HttpClient, HttpEvent, HttpParams, HttpRequest, HttpHeaders } from '@angular/common/http';

@Injectable({ providedIn: 'root' })
export class AuthService {

    constructor(private http: HttpClient) {}

    public uploadFile(file: File, username: string, password: string): Observable<HttpEvent<any>> {
      // Note - this returns an EVENT, so we can track progress
      var headers = new HttpHeaders();
      headers.append("Authorization", "Basic " + btoa(`${username}:${password}`));
      let formData = new FormData();
      formData.append('upload', file);
      const params = new HttpParams;
      const options = { headers: headers, params: params, reportProgress: true };
      const req = new HttpRequest('PUT', 'http://use08nexus01p:8081/nexus/content/repositories/', formData, options);
      return this.http.request(req);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...