Android 使用改型发送字符串查询

Android 使用改型发送字符串查询,android,retrofit,Android,Retrofit,因为我之前的问题没有得到回答,我决定用另一种方式问我的问题。 我正在尝试通过改造将字符串查询发送到服务器。但是响应是空的。如何使用改型发送字符串查询? 当我在浏览器中尝试精确的URL时,一切正常。但改造发送的URL不起作用。我要写搜索查询手册 这是接口: @FormUrlEncoded @POST("get_near_shop_cat.php") Observable<NearShopLocationModel> getNearShopBySearch(@Field

因为我之前的问题没有得到回答,我决定用另一种方式问我的问题。 我正在尝试通过改造将字符串查询发送到服务器。但是响应是空的。如何使用改型发送字符串查询? 当我在浏览器中尝试精确的URL时,一切正常。但改造发送的URL不起作用。我要写搜索查询手册

这是接口:

 @FormUrlEncoded
    @POST("get_near_shop_cat.php")
    Observable<NearShopLocationModel> getNearShopBySearch(@Field("lat") Double lat, @Field("lng") Double lng, @Field("search") String search);
这正是在浏览器中运行良好的URL:

https://admanandroid.ir/bavand/get_near_shop_cat.php?lat=35.5092706&lng=46.1725443&search=%22%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1%22
我试着得到同样的结果。响应为空。我认为问题在于“搜索”查询。如果查看浏览器URL,则搜索字符串的开头和结尾都有%22%。但是改装URL没有它

编辑:

如果查看浏览器URL,则搜索字符串的开头和结尾都有%22%。但改型URL没有它

%22表示qoutation标记,这意味着您的api希望字符串查询包含在qoutation标记中。调用改装功能时,将其括在QOUTING标记中:

.GetNearShoppy搜索,液化天然气,\+搜索\ 当您使用该url时,浏览器会发送GET请求,但在代码中,您试图发送POST请求。更改函数以获取参数并将其作为查询传递

@GETget_near_shop_cat.php 可观察getNearShopBySearch@Querylat双lat、@Querylng双lng、@Querysearch字符串搜索;
我试过了,但结果是一样的。响应为空。我认为问题在于“搜索”查询。如果查看浏览器URL,搜索字符串的开头和结尾都有%22%。但是改型URL没有它。@Shadmandaman如果您的搜索字符串是另一种语言,您必须在将其发送到之前对其进行编码retrofit@ShadmanAdman对不起,刚刚又查过了。问题是,api端点希望您的字符串被QOUTING标记封闭,%22正在为@Shadmandaman编码,在发送字符串进行改装之前,请将其封闭在QOUTING标记中,如下所示:\+searchQuery+\Thank you。你节省了我的时间。
<?php 

//Importing the database connection 
require_once('DBconnect.php');

$lat = $_GET['lat'];    
$lng = $_GET['lng'];    
$search = $_GET["search"];  

    //SQL query to fetch data of a range 
    $sql = "SELECT id,title,imageURL1,comment,categoryName,lat,lng, ( 3959 * acos( cos( radians(" . $lat . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $lng . ") ) + sin( radians(" . $lat . ") ) * sin( radians( lat ) ) ) ) 
    AS distance FROM shop WHERE title LIKE CONCAT('%',$search, '%') || categoryName LIKE CONCAT('%',$search, '%') HAVING distance < 5";

    //Getting result 
    $res = mysqli_query($con,$sql); 

    //Adding results to an array 
    $results = array(); 


    while($row = mysqli_fetch_array($res)){
            array_push($results, array(
            "id"=>$row['id'],
            "title"=>$row['title'],
            "imageURL1"=>$row['imageURL1'],
            "comment"=>$row['comment'],
            "categoryName"=>$row['categoryName'],
            "lat"=>$row['lat'],
            "lng"=>$row['lng']
            )
            );

    }
    //Displaying the array in json format 
    echo json_encode(array("results"=>$results));
    D/OkHttp: --> POST https://admanandroid.ir/bavand/get_near_shop_cat.php
    Content-Type: application/x-www-form-urlencoded
D/OkHttp: Content-Length: 85
    lat=35.5092706&lng=46.1725443&search=%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1
D/OkHttp: --> END POST (85-byte body)
https://admanandroid.ir/bavand/get_near_shop_cat.php?lat=35.5092706&lng=46.1725443&search=%22%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1%22