dongyou6909
2018-04-27 06:18
浏览 159

通过Retrofit2向字符串类别发送Api请求到Mysql数据库服务器但不起作用

I am sending Api request through Retrofit2 to Mysql Database to fetch data but am sending one category in string with Api request to check if my data is available according to that category.It is going in if condition in php script and giving me catid is null please check my code. I am giving catid why is it passing if condition and giving catid is null?

Note: If I give catid hard code to php script it gives me result according to that category. I think problem in posting catid with Api request.Guide me please

@GET("fetchtext.php")
Call<ArrayList<DataStored>> savePost(@Query("catId") String catId);

Here I am sending request to server:

 mAPIService.savePost(category).enqueue(new Callback<ArrayList<DataStored>>() {
            @Override
            public void onResponse(Call<ArrayList<DataStored>> call, Response<ArrayList<DataStored>> response) {
                Log.d(TAG, "onResponse: 2"+response.body());
                arrayList=  response.body();
              myRecyclerAdapter.addItems(arrayList);
            }

            @Override
            public void onFailure(Call<ArrayList<DataStored>> call, Throwable t) {
                Log.d(TAG, "onFailure: 2"+t.getMessage());

            }
        });

My Php script:

    <?php 
    $db_name="discount";
    $mysql_username="root";
    $mysql_password="nwpas";
    $server_name="localhost";
    $con=mysqli_connect($server_name,$mysql_username,$mysql_password,$db_name);
    $catid=$_POST["catId"];
    if(empty($catid)){
echo "catid is null";
    }
    else{
    $sql = "SELECT branchName,brands.brandsName 
      FROM branch Inner Join brands on branch.brandsID=brands.brandsID WHERE brands.catID=$catid" ;
    $r = mysqli_query($con,$sql);
    $result = array();
    if (!$r) {
        printf("Error: %s
", mysqli_error($con));
        exit();
    }
    while($row = mysqli_fetch_array($r)){
        array_push($result,array(
            'brancname'=>$row['branchName'],
            'brandsNae'=>$row['brandsName']

        ));
    }
    echo json_encode($result);
    mysqli_close($con);
    }

    ?>
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dou12754 2018-04-27 08:29
    已采纳

    Since you are making a GET request using retrofit change your php code to accept GET params. Currently your code is configured to send a GET request from android but in the php end you are accepting a POST request

    In your php code, change

    $catid=$_POST["catId"];
    

    to

    $catid=$_GET["catId"];
    

    Alternatively if you prefer not to change the php side, then make a post request with retrofit using @POST and then passing the catId in body

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题