2017-03-03 73 views
1

当我运行这段代码时,我总是收到一个“空”异常。如果我手动输入url字符串到我的浏览器中,PHP脚本发布“{query_result:SUCCESS}”表示它已经工作,但是当我通过这段代码尝试时,我只是将Exception e视为“null”。谁能帮忙?使用HttpURLConnection,InputStreamReader,我得到空响应

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; 
     } 
    } 
+2

异常发生在哪一行?请生成并显示整个堆栈跟踪。我暂时不在乎http://stackoverflow.com/q/218384/616460。 –

+1

您能否提供错误日志请 –

+1

^确保您修改您的代码以首先将错误日志转储到错误日志。 –

回答

0

很多时候,服务器阻止这样的请求,因为它们是自动的,没有“用户代理”头。您可能想要表现得像一个“真正的”浏览器。

另外我在这里看到一个内容编码问题。 InputStreamReader的构造函数使用默认编码,这可能不是来自服务器的编码 - 它可能会因将字节转换为字符而崩溃。

+0

有没有办法让查询的行为像一个真正的浏览器? –

+0

设置用户代理标题例如 –

相关问题