程序根本不进入响应监听器

时间:2019-02-02 11:46:18

标签: java request httpresponse

因此,我为Android应用程序创建了一个API以与我的本地数据库通信(使用无线局域网)。我使用了 Java(用于应用程序) PHP(数据库连接)

API调用在PHP方面起作用,正如我在Postman上使用相关请求正文所测试的那样。令人沮丧的只是Java方面。

JSON请求主体的外观(示例)

{
    "filter": "AB3 4CD",
    "ownLoc": "false", 
    "lng": "0.0",
    "stylist": "example",
    "lat": "0.0"
}

响应侦听器

Response.Listener<String> res = new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        // Code on response here
    }
};

字符串请求

/**
 * This class performs a request to fetch
 * stylist information from the database based
 * on the filter used.
 */
public class SearchCredentialsRequest extends StringRequest{

private static final String HOST_HEAD = "http://example_host/api";
private static final String API_URL = HOST_HEAD + "/list";
private Map<String,String> params;

public SearchCredentialsRequest(
        String filter,
        String stylist,
        boolean ownLoc,
        float[] latLng,
        Response.Listener<String> response) {

    super(Method.POST, API_URL, response, null);



    params = new HashMap<>();
    params.put("filter", filter);
    params.put("stylist", stylist);

    if(ownLoc) {
        params.put("ownLoc", "true");
    }
    else{
        params.put("ownLoc", "false");
    }

    params.put("lat", Float.toString(latLng[0]));
    params.put("lng", Float.toString(latLng[1]));
}


@Override
protected Map<String, String> getParams() throws AuthFailureError {
    return params;
}
}

使用字符串请求

float[] latLng = {lat, lng};

SearchCredentialsRequest credReq = new SearchCredentialsRequest(
        filter,
        stylistFilter,
        useOwnLoc,
        latLng,
        res
);

RequestQueue queue = Volley.newRequestQueue(StylistSearch.this);
queue.add(credReq);

调试后的问题(需要帮助的地方):

执行COUNTLESS次调试后,我发现问题出在响应侦听器res中。我在onResponse方法中放置了一个Log语句,但该日志未显示。这意味着该程序甚至没有介入其中。

但请求主体(经过检查)正确无误,并且格式与上面的示例相同。

0 个答案:

没有答案