Java 使用HttpURLConnection、InputStreamReader,我得到空响应

Java 使用HttpURLConnection、InputStreamReader,我得到空响应,java,android,Java,Android,当我运行这段代码时,我总是得到一个“null”异常。如果我在浏览器中手动键入url字符串,php脚本将发布“{query_result:SUCCESS}”,表明它有效,但当我通过这段代码尝试时,我只得到异常e为“null”。有人能帮忙吗 protected String signUp(String username) { String link = "http://12.34.56.78/JSON_addUser.php"; String data = "";

当我运行这段代码时,我总是得到一个“null”异常。如果我在浏览器中手动键入url字符串,php脚本将发布“{query_result:SUCCESS}”,表明它有效,但当我通过这段代码尝试时,我只得到异常e为“null”。有人能帮忙吗

protected String signUp(String username) {
        String link = "http://12.34.56.78/JSON_addUser.php";
        String data = "";
        BufferedReader bufferedReader;
        String result = "";
        String message;

        try {
            data += "?username=" + URLEncoder.encode(username, "UTF-8");
            link += data;

            URL url = new URL(link);

            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
            result = bufferedReader.readLine();
            return result;
        } catch (Exception e) {
            message = "Exception trying:  " + link + "   Got: " + e.getMessage() + result;
            return message;
        }
    }

服务器通常会阻止这样的请求,因为它们是在没有“用户代理”头的情况下自动执行的。您可能希望表现得像一个“真正的”浏览器


我还看到了一个内容编码问题。来自
InputStreamReader
的构造函数使用默认编码,而这可能不是来自服务器的编码——将字节转换为字符可能会导致崩溃。

服务器通常会阻止这样的请求,因为它们是在没有“用户代理”头的情况下自动执行的。您可能希望表现得像一个“真正的”浏览器


我还看到了一个内容编码问题。来自
InputStreamReader
的构造函数使用默认编码,而这可能不是来自服务器的编码——将字节转换为字符可能会导致崩溃。

在哪一行发生异常?请生成并显示整个堆栈跟踪。我暂时不让你受骗。你能提供错误日志吗?请确保你先修改代码,将异常转储到错误日志中。我实际上根本没有收到错误。当我通过Android应用程序进行查询时,我刚从JSON_addUser.php得到一个“null”响应,但是当我手动键入应用程序正在使用的确切链接时,它就工作了。异常发生在哪一行?请生成并显示整个堆栈跟踪。我暂时不让你受骗。你能提供错误日志吗?请确保你先修改代码,将异常转储到错误日志中。我实际上根本没有收到错误。当我通过Android应用程序进行查询时,我刚从JSON_addUser.php得到一个“null”响应,但是当我手动键入应用程序正在使用的确切链接时,它就起作用了。有没有办法使查询像真正的浏览器一样?设置用户代理标头e.gIs有没有办法使查询像真正的浏览器一样?设置用户代理标头例如