Angular 4 Http req,从HttpReponse获取文本正文

时间:2018-04-18 12:37:46

标签: spring angular spring-boot angular4-httpclient

我正在使用Spring Boot处理Angular 4应用程序。基本上现在我有一个服务,将我的Angular应用程序中的文件上传到我的Spring Boot服务器。

我想在Angular日志中打印来自我从Spring收到的ResponseEntity对象的消息,但我无法知道如何使用事件对象来获取消息,这里'我的代码示例:

EDIT1: console.log(event.body)打印好message1message2,但我需要event.body作为字符串才能在特定字符中使用它功能。

现在它是HttpResponse<{}>.body: {},但我不知道它在TS中意味着什么,我怎么能将它转换为字符串。

EDIT2 :我认为它应该是那样的

if(event.body instanceof String) function(event.body); 

但我仍然在String和string之间遇到类型冲突。并将其修改为string,它表示&#39;字符串&#39;在这里用作值。

UploadService:

uploadFile(file: File): Observable<HttpEvent<{}>> {
    let formdata: FormData = new FormData();
    formdata.append('file', file);
    const req = new HttpRequest('POST', '/post', formdata, {
      reportProgress: true,
      responseType: 'text'
    });
    return this.http.request(req);
  }

上传方法:

 this.uploadService.uploadFile(file).subscribe(event => {
          if (event.type === HttpEventType.UploadProgress) {
            //Do some stuff
          } else if (event instanceof HttpResponse) {
            //message = event.body ?? //How to get message 1 or 2 below??? 
            console.log(message)
            });
            console.log('File ' + file.name + ' is completely uploaded!');
          }
        });

这是我的Spring Boot服务器的响应:

return ResponseEntity.status(HttpStatus.OK).body("message1");

或:

return ResponseEntity.status(HttpStatus.EXPECTATION_FAILED).body("message2");

1 个答案:

答案 0 :(得分:0)

使用String构造函数:

String(event.body)返回string我可以在我的具体function(string) :void

中使用的{{1}}