我的环境:
- 购买 RestController:Spring Boot
- 在本地主机laptopn ubuntu上18:04
- ShopService:Angular HttpClient
- 在本地主机 Windows 10 桌面电脑上
问题:
我通过 HttpClient 的获取请求得到的响应为空。 但是如果我使用 postman 或在浏览器上,我会得到预期的响应正文。
Angular 代码:
const BASE_URL = 'http://pc01:8081/shopsystem/shops';
const SHOP_NAME = 'Muster Shop';
@Injectable({
providedIn: 'root'
})
export class ShopService {
shop$: Shop;
address$: Address;
owner$: Owner;
//header = new HttpHeaders({ 'Content-Type': 'application/json' });
constructor(private http: HttpClient) { }
public getShop(): Observable<Shop>{
return this.http.get<Shop>(BASE_URL + '/' + SHOP_NAME);
}
响应 header :
回复:
对 postman 的请求:
Spring Boot Controller :
我已经尝试过使用 Observable 和 any 以及 HttpHeaders 和 application/json 但同样的 react 。
另一件事:如果我的 Spring Boot Controller 返回一个列表,那么我会得到包含内容的响应正文。
问题:
为什么我的 HttpClient 请求中的正文为 null 或空?
我该如何解决这个问题?
谢谢
最佳答案
您的 Angular HttpClient 对路径变量中的空格进行编码,因此它作为 Muster%20Shop 到达 RestController。
然后您尝试查找不存在的具有该确切名称的记录。
您必须先对 @PathVariable
进行解码,然后才能将其作为 Muster Shop 发送到查询。
关于java - 为什么 Angular HttpClient 响应为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55773221/