java - 为什么 Angular HttpClient 响应为空?

标签 java angular spring-boot httpclient angular7

我的环境:

  • 购买 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 :

enter image description here

回复:

enter image description here

对 postman 的请求:

enter image description here

Spring Boot Controller :

enter image description here

我已经尝试过使用 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/

相关文章:

java - 通过 Java 应用程序发布到 Twitter 的最佳方式

angular - 类型 'timeout' 上不存在属性 'Observable<Object>'

javascript - 元素类测试显示 ng-untouched 和正确输入失败

java - Google App Engine 上 Spring Boot 应用程序的 Maven 配置文件

spring.data.rest.defaultMediaType=application/json 不起作用

java - 扫描仪分隔符与参数一起传递?

java - InputStream 类中读取方法的返回类型

angular - 为什么 ngrx/store 示例应用程序使用多个商店? (如何设计店铺)

rest - 一旦集群 IP 及其端口出现故障,就会出现问题

java - 将文件中的无序项放入数组中