从Android应用程序调用时获取请求返回404错误

时间:2016-04-09 16:27:02

标签: java php android

我正致力于创建应用,而且我很擅长这样做。我使用的是Android工作室。我创建了一个php脚本并将其托管在我的hostinger帐户上,以及它访问的数据库。如果我在浏览器上输入脚本的URL,它会给我一个警告,说它需要一个参数(不确定我是否有办法输入参数,当我像这样测试它?)并显示我的数组想要返回(当然,所有空值都是,因为它没有SELECT语句的参数)。当我尝试使用参数从我的代码中调用php脚本时,它返回一个"错误404 - 找不到页面"错误。这是我将它存储到字符串

的地方
RequestHandler rh = new RequestHandler();
            String s = rh.sendGetRequestParam(Config.URL_GET_USER, username);

它引用的网址肯定是正确的,因为我可以将它直接从代码复制到浏览器中并且可以正常工作。我之前打印过用户名字符串,以确保它是正确的,确实如此。这是RequestHandler类的相关代码部分

public String sendGetRequestParam(String requestURL, String username){
    StringBuilder sb =new StringBuilder();
    try {
        URL url = new URL(requestURL+username);
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));

        String s;
        while((s=bufferedReader.readLine())!=null){
            sb.append(s+"\n");
        }
    }catch(Exception e){
    }
    return sb.toString();
}

最后这是PHP脚本

<?php



$username = $_GET['username'];

 require_once('dbConnect.php');

 $sql = "SELECT * FROM user_info WHERE username=$username";

 $r = mysqli_query($con,$sql);

 $result = array();
 $row = mysqli_fetch_array($r);
 array_push($result,array(
 "user_id"=>$row['id'],
 "username"=>$row['username'],
 "password"=>$row['password'],
 "dob"=>$row['dob'],
 "forename"=>$row['forename'],
 "surname"=>$row['surname']
 ));

 echo json_encode(array('result'=>$result));

 mysqli_close($con);

如果您需要更多信息,请与我们联系

编辑:我现在已经将“username =”添加到请求中,以便它检索数组,但数组中填充了空值。我认为当我尝试通过浏览器访问它时得到的错误消息与为什么会发生这种情况有关。它说: &#34;警告:mysqli_fetch_array()要求参数1为mysqli_result,布尔值在&#34;然后它有到php文件的路径并说第12行,所以这一行:

$row = mysqli_fetch_array($r);

0 个答案:

没有答案