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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵