Отправка запроса API с категорией строк на сервер базы данных Mysql через Retrofit2, но не работает - PullRequest
0 голосов
/ 27 апреля 2018

Я отправляю запрос Api через Retrofit2 в базу данных Mysql для получения данных, но отправляю одну категорию в строке с запросом Api, чтобы проверить, доступны ли мои данные в соответствии с этой категорией. Это происходит, если условие в сценарии php и дает мне Катида является нулевой, пожалуйста, проверьте мой код. Я даю катиде, почему она проходит, если условие и давать катиде - ноль?

Примечание: если я дам жесткий код catid в php скрипт, он даст мне результат в соответствии с этой категорией. Я думаю, что проблема в публикации Catid с запросом Api. Руководство, пожалуйста,

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

Здесь я отправляю запрос на сервер:

 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());

            }
        });

Мой скрипт Php:

    <?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\n", 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 Ответ

0 голосов
/ 27 апреля 2018

Поскольку вы делаете запрос GET, используя модификацию, измените ваш php-код, чтобы принимать GET параметры. В настоящее время ваш код настроен на отправку запроса GET от android, но в конце php вы принимаете запрос POST

В вашем php-коде измените

$catid=$_POST["catId"];

до

$catid=$_GET["catId"];

В качестве альтернативы, если вы предпочитаете не менять сторону php, то сделайте запрос на публикацию с модификацией, используя @POST, а затем передайте catId в теле

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...