运行此代码时,我不断收到“空”异常。如果我在浏览器中手动键入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中的构造函数使用默认编码,而这可能不是服务器的编码-将字节转换为char可能会崩溃。

关于java - 使用HttpURLConnection,InputStreamReader,我得到空响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42589085/

10-10 03:16