dongyou6909 2018-04-27 06:18
浏览 165
已采纳

通过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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 网友们我该怎么办啊,急
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 目标跟踪,计算机视觉
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
  • ¥200 C++表格文件处理-悬赏
  • ¥15 Windows Server2016本地登录失败
  • ¥15 复合卡卡号轨道写入芯片卡
  • ¥20 基于MATLAB的TDOA