如何正确调用删除方法?

问题描述

实际上,这是我第一次尝试将delete方法称为angular。 我在dataService中的代码是:

private void getBitmapFromPath(String pFilePath) {
    try {
        File f = new File(pFilePath);
        Bitmap bitmap = BitmapFactory.decodeStream(new FileInputStream(f));
        //use this bitmap as you want
    } catch (FileNotFoundException e) {
        e.printstacktrace();
    }
}

和组件中的

    //This for saving file path 
    PreferenceManager.getDefaultSharedPreferences(context).edit().putString("FILE_PATH_KEY",filePath).apply();

    //this for getting saved file path
    String filePath = PreferenceManager.getDefaultSharedPreferences(context).getString("FILE_PATH_KEY","path not retrieved successfully!");

但是我收到415不支持媒体类型错误! 我也尝试过在请求标头中发送Content-Type,例如:

deleteMeaningItem(data): Observable<Result> {
    return this.http.delete<Result>(url,data);
  }

但是然后我得到了400 Bad Request错误! 我需要你的帮助。

解决方法

我想问题可能出在data对象中。我将首先检查API的文档,因为它看起来也缺少Autorization头,而delete

这样的方法通常需要 ,

我要做的就是在请求选项中提供正文。所以我这样做了:

deleteMeaningItem(meaningId): Observable<Result> {
    const options = {
      headers: new HttpHeaders({
        'Content-Type': 'application/json',}),body: meaningId,};
    return this.http.delete<Result>(global.dataUrl + '/MeaningItems/Delete',options);
  }
,

也许使用RXJS更容易。

首先定义删除功能@服务

delete(id: string): Observable<Result> {
 return this.httpClient.delete<Result>(`${global.dataUrl}/MeaningItems/${id}`);
}

然后尝试这样称呼它:

this.service.delete(id).pipe(
  tap(r => console.log('success',r)),catchError(e => {
    console.error('error',e);
    return throwError(e);
  })
).subscribe();

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...