运行此代码时,我一直收到“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;
}
}
答案 0 :(得分:0)
服务器通常会阻止这样的请求,因为它们是自动的,没有“用户代理”标头。您可能希望表现得像“真正的”浏览器。
此外,我在此处看到了内容编码问题。来自InputStreamReader
的构造函数使用默认编码,这可能不是来自服务器的编码 - 它可能会因将字节转换为字符而崩溃。