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

通过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 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码