java - Web服务不接受 postman 的获取请求

标签 java azure web-services azure-web-app-service

我在本地计算机上创建了一个基于 java 的进程,将其发布为 Web 服务并部署在 azure 上的 Linux VM 上。打开所需的端口并提供私有(private) IP 10.0.0.4 作为托管 Web 服务的端点。

将执行哪个Web服务的进程具有读/写/执行权限。

执行来自 Web 服务的批处理文件以打开其余端点以获取请求。

我在与 Linux VM 相同的网络内的 azure 上创建了另一个 Windows VM。两个虚拟机都能够互相 ping 通。

当我向 webservice API 发送 GET 请求时,收到错误

Http Error 403:The IP address/hostname is not allowed

或者,我从 Windows VM 托管 Web 服务,并使用 localhost 启动端点,在同一 VM 的 Postman 上进行测试,并且运行顺利。

问题: 为什么 Windows VM 上的 postman 无法向 Linux VM 上的 webservice 发送 GET 请求? 当我运行curl http://10.0.0.4时,我明白

curl: (7) Failed to connect to 10.0.0.4 port 80: Connection refused

我在/etc/hosts 文件中添加了 10.0.0.4: 10.0.0.4

请帮忙。

最佳答案

  • 如果您的 Web 服务可通过与 Postman 不同的域或端口访问,则配置 CORS 以允许来自不同来源的请求。要接受来自 Postman 的请求,请在 Web 服务的响应中包含正确的 CORS header 。
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type
  • 确认您的 Windows 虚拟机的 IP 地址有权访问 Linux 虚拟机上的 Web 服务。 enter image description here
  • 验证您的 Web 服务是否在 Linux 虚拟机上正确设置以监听专用 IP 地址 (10.0.0.4)。确保 Web 服务可从虚拟机本身内部使用,并绑定(bind)到正确的 IP 地址和端口。

When I send GET request to webservice API , I receive the error.

只需尝试测试curl 命令来检查Web 服务是否接受Linux VM 本身上的GET 请求。 curl http://localhost

  • 尝试通过更改 Linux VM 中的端口进行检查。 enter image description here

关于java - Web服务不接受 postman 的获取请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76414636/

相关文章:

java - 使用引用变量指向比较器?

azure - 不在托管服务或开发结构中运行(生产,而不是调试/本地)

java : Different ways for constructing an ArrayList

java - 使用 Jaxb 绑定(bind)更改部件名称

java - 如何使用 JSON 负载对 Dynamo DB 表执行 updateItem 操作

java - 如果我想要可克隆的类,为什么我必须覆盖克隆?

java - 如何在JAVAFX中自定义组合框

powershell - Get-AzureLocation - 资源管理器替代方案

azure - 在 Azure Iot Hub 中保持事件延迟

.net - System.Net.ServicePointManager.DefaultConnectionLimit 和 .MaxServicePointIdleTime