第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

HTTP POST Angular 到 Java。不能發(fā)送多個不同類型的參數(shù)

HTTP POST Angular 到 Java。不能發(fā)送多個不同類型的參數(shù)

慕雪6442864 2023-05-17 16:05:09
我正在嘗試將上傳的文件(來自 Angular 的 FormData)和同一個 HTTP POST 請求中的字符串發(fā)送到后端(Java 使用 Grizzly 服務(wù)器和 Ajax 用于 REST 服務(wù))。問題是我收到 HTTP 400 Bad Request 因為文件沒有正確映射:jersey message: Can not construct instance of java.io.InputStream: abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type在前端,我有一個名為 Form 的類,它是使用 ng g class Form 創(chuàng)建的,其中包含:export class Form {    private file:FormData;    private bookName: String;    constructor(file:FormData, bookName: String) {        this.file = file;        this.bookName = bookName;    }}Frontend 的 HTTP POST 方法是:  sendFormData() {    const form  = new Form(this.testData, this.bookName);    this.pdfService.sendFormData(form).subscribe((res) => {      console.log(res);    });  }上面的 this.testData 具有 FormData 類型,而 this.bookName 是一個字符串。它們都包含預(yù)期的輸入值。pdfService.sendFormData 是:  public sendFormData(form: Form) {    console.log("sending to " + this.baseUrl + "uploadFile")    return this.http.post(this.baseUrl + "uploadFile", form, { responseType: 'text' });  }在后端我有一個類 Form.java (映射類):public class Form {    String bookName;    InputStream file;    ... (getters & setters & constructor)}HTTP POST 方法是:    @POST    @Consumes(MediaType.APPLICATION_JSON)    @Produces(MediaType.TEXT_HTML)    @Path("uploadFile")    public Response convertPdfToHtml(Form form) {            ...    }要獲取映射的字符串,我使用:form.getBookName() 并獲取映射的文件,我使用:form.getFile()。正如我所說,問題是來自前端的文件沒有正確映射到來自后端的 InputStream。我應(yīng)該使用什么類型將前端的 FormData 映射到后端的類型?或者我可以使用哪些其他實現(xiàn)在同一個 POST 請求中發(fā)送文件和字符串?
查看完整描述

1 回答

?
達(dá)令說

TA貢獻(xiàn)1821條經(jīng)驗 獲得超6個贊

在 POST 方法中,您應(yīng)該提供 FormData 類型的對象,并且有


export class Form {

  private file: File;

  private bookName: String;


  constructor(file:File, bookName: String) {

    this.file = file;

    this.bookName = bookName;

  }

}



public sendFormData(form: Form) {

  const formData = new FormData();

  formData.append('bookName', form.bookName);

  formData.append('file', form.file, form.file.name);


  console.log("sending to " + this.baseUrl + "uploadFile")

  return this.http.post(this.baseUrl + "uploadFile", formData, {responseType: 'text'});

}

你會得到內(nèi)容類型為 multipart/form-data 的帖子


查看完整回答
反對 回復(fù) 2023-05-17
  • 1 回答
  • 0 關(guān)注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號