当前位置: 首页 > 知识库问答 >
问题:

400带有HTTPURLConnection的Docker容器之间的错误HTTP GET请求

傅乐湛
2023-03-14

我在docker-compose文件中定义了两个容器:

 
 tomcat_webserver_api:
  image: tomcat:8
  volumes:
   - ./API/Docker/API.war:/usr/local/tomcat/webapps/API.war
  ports:
    - "8080:8080"
  depends_on:
   - mysql_database

 tomcat_webserver_anwendung:
  image: tomcat:8
  ports:
   - "8081:8080"
  volumes:
   - ./Anwendung/Docker/Anwendung.war:/usr/local/tomcat/webapps/Anwendung.war
  depends_on:
   - tomcat_webserver_api
  environment:
    API_HOST: tomcat_webserver_api
    API_PORT: 8080

现在,我想通过HTTPURLConnection从Java Web应用程序内部访问URLhttp://tomcat_webserver_api:8080/api/restaurants/wochentag

问题:返回400错误

java.io.IOException: Server returned HTTP response code: 400 for URL: http://tomcat_webserver_api:8080/API/restaurants/Wochentag

代码是这样的(当我尝试通过curl连接到URL时,标题几乎是相同的--这在容器中起作用哈):


    URL api = UriBuilder.fromUri("http://" + "tomcat_webserver_api" + ":" + "8080" +"/API/restaurants/RestaurantSpeisen").build().toURL();

    System.setProperty("http.agent", "curl/7.52.1");

    HttpURLConnection connection = (HttpURLConnection) api.openConnection();
    connection.setRequestMethod("GET");
    connection.setRequestProperty("Host", "localhost");
    connection.setRequestProperty("User-Agent", "curl/7.52.1");
    connection.connect();

    BufferedReader in = new BufferedReader(new             InputStreamReader(connection.getInputStream(), "UTF-8"));

http://172.20.0.3:8080/api/restaurants/wochentag-工作http://tomcat_webserver_api:8080/api/restaurants/wochentag-将不工作,但不会出现404错误

共有1个答案

陆海阳
2023-03-14

我遇到了和你一样的问题,显然下划线是不允许作为虚拟主机的,尝试删除它,例如,只使用tomcatwebserverapi,这应该可以解决你的问题。

请参阅(域名)子域中是否可以有下划线“_”?有关主机名中有效字母的详细信息。

 类似资料:
  • 我正在尝试使用HttpUrlConnection发送帖子。一切看起来都很好,但它保持返回400,就好像参数不是在DataOutputStream中发送的,或者是以错误的方式发送的。 这是返回的内容: 这很奇怪,因为这个卷曲正常工作: 它会返回我想要的访问令牌

  • 问题内容: 我有一段这样的代码 当我输入的查询超过一个词,例如“狗”时,出现以下错误。 谁能指出我做错了什么?提前致谢。 问题答案: “狗”返回400错误的原因是因为您没有转义URL的字符串。 如果您这样做: 会的。 但是,我强烈建议您使用请求,而不要使用urllib / urllib2 / httplib。这要容易得多,它将为您处理所有这一切。 这是与python请求相同的代码:

  • 我有一个基于Spring Web model view controller(MVC)框架的项目。Spring Web模型-视图-控制器(MVC)框架的版本是3.2.8 我有这个控制器 这个URL一切正常:

  • 目前从Angular JS controller中,我试图将JSON数据发送到后端服务。但是我有400个错误的请求错误。 在Controller中,我试图通过http服务发送数据,如下所示:

  • 我试图写一个通用代码上传文件到任何服务器(多部分职位)。< br >我已经在我的代码和各种stackoverflow解决方案中尝试了不同的头和请求类型,但仍然无法上传任何文件。 我不断收到以下HTML消息作为响应: 400 BAD请求 如何在Android中编写一个通用代码将文件上传到服务器?< br > Android代码:< br > 用于测试文件上传的 PHP 代码:

  • UniRest和Spring RestTemboard有什么区别,它们会返回一个400错误请求,发送的标头和正文显然相同? 我试图访问HubSpot API来创建博客帖子,但使用RestTemplate时出现了400个错误请求错误,而使用UniRest可以正常工作(返回OK响应)。然而,我不想仅仅为了一个REST调用就包含一个库:我宁愿坚持使用RestTemplate。 HttpMethod: 网