【问题标题】:Java HttpURLConnection giving error 400Java HttpURLConnection 给出错误 400
【发布时间】:2014-07-18 20:29:10
【问题描述】:

我有一个简单的谷歌应用引擎网站正在运行,它工作正常,网页正在浏览器中显示。

如果我使用 python 发送 GET 请求,它可以完美运行,但由于某种原因,当我使用 java 时它会给出 404 Response。我的java代码是:

public static void main(String args[]){
    try {
        URL u = new URL("http://localhost:8080/gendata/");
        HttpURLConnection con = (HttpURLConnection) u.openConnection();
        con.setRequestProperty("Content-Type", "text/plain");
        con.setRequestMethod("GET");
        if(con.getResponseCode() == HttpURLConnection.HTTP_OK){
            System.out.println("Hola");
        }else{
            System.out.println(""+con.getResponseCode());
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

我的应用引擎获取方法:

class Writer(webapp2.RequestHandler):
def get(self):
    self.response.write('''
                <html>
                <head><title>Hello</title>
                </head>
                <body>
                <h1><center><b>This is test<br> FOO FOO
                </b></center> </h1>
                </body></html>
                ''')

刚开始学习Java我就想知道这个过程和python有什么不同吗?而且我也想知道有没有类似python中的requests库的Java库?

【问题讨论】:

  • Apache HttpComponents 库 (hc.apache.org) 是 Java 的标准。一旦你超越了基础,学习曲线可能会有点陡峭。在您运行 Java 的同一台机器上,curl -v http://localhost:8080/gendata/ 的输出是什么?
  • 它给了我 404 错误和“在 DNS 缓存中找不到主机名”
  • 主机名消息仅供参考。 404 提示 URL 无效,那么当你从 python 或浏览器调用它时它是如何工作的呢?您确定您使用的网址在所有情况下都相同吗?
  • 好的,我明白了,问题是 Oracle 数据库和应用引擎都在同一个端口上运行。因此浏览器和 python 将访问应用程序引擎数据,而 curl 和 java 将访问数据库页面。我刚刚将端口从 8080 更改为 9080 并且工作正常。

标签: java python google-app-engine


【解决方案1】:

好的,我明白了,问题是 Oracle 数据库和应用引擎都在同一个端口上运行。因此浏览器和 python 将访问应用程序引擎数据,而 curl 和 java 将访问数据库页面。我刚刚将端口从 8080 更改为 9080 并且工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多