问题描述
实际上,这是我第一次尝试将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();