繁体   English   中英

排球库中未调用post方法-android

[英]post method not called in volley lib - android

我正在使用volley lib,但是遇到一个奇怪的问题。 凌空库不返回任何值。 但是我在此站点https://www.hurl.it/上测试了我的Web服务,它返回了值。

我的网络服务:

http://shadyab.com/Mobile/vitrin/index.php

if(isset($_POST['get_job_service_category'])){
        require_once 'include/DB_Functions.php';
        $object = new DB_Functions();
        echo json_encode($object->getJobServiceCategory());

    }

我的排球功能:

    private void getAllCategories(){

    RequestQueue queue = MyVolley.getRequestQueue();

    StringRequest myReq = new StringRequest(Request.Method.POST,
            TagsClass.URL_ADDRESS,
            createMyReqSuccessListener(),
            createMyReqErrorListener()) {

        protected Map<String, String> getParams() throws com.android.volley.AuthFailureError {
            Map<String, String> params = new HashMap<String, String>();
            params.put("get_job_service_category","-");
            return params;
        };
    };
    queue.add(myReq);

}

    private Response.Listener<String> createMyReqSuccessListener() {
    return new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {

            parseResultOfServer(response.toString());
        }
    };
}


private void parseResultOfServer(String str){

    Log.e("sss", "=>" + str);
    Toast.makeText(getActivity(),"=>"+str,Toast.LENGTH_LONG).show();

}

private Response.ErrorListener createMyReqErrorListener() {
    return new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e("err","="+error.getMessage());

        }
    };
}

我哪里错了?

MyVollet.java类:

import android.app.ActivityManager;
import android.content.Context;

import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;


/**
 * Helper class that is used to provide references to initialized RequestQueue(s) and ImageLoader(s)
 * 
 * @author Ognyan Bankov
 * 
 */
public class MyVolley {
    private static RequestQueue mRequestQueue;
    private static ImageLoader mImageLoader;


    private MyVolley() {
        // no instances
    }


    public static void init(Context context) {
        mRequestQueue = Volley.newRequestQueue(context);

        int memClass = ((ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE))
                .getMemoryClass();
        // Use 1/8th of the available memory for this memory cache.
        int cacheSize = 1024 * 1024 * memClass / 8;
        mImageLoader = new ImageLoader(mRequestQueue, new BitmapLruCache(cacheSize));
    }


    public static RequestQueue getRequestQueue() {
        if (mRequestQueue != null) {
            return mRequestQueue;
        } else {
            throw new IllegalStateException("RequestQueue not initialized");
        }
    }


    /**
     * Returns instance of ImageLoader initialized with {@see FakeImageCache} which effectively means
     * that no memory caching is used. This is useful for images that you know that will be show
     * only once.
     * 
     * @return
     */
    public static ImageLoader getImageLoader() {
        if (mImageLoader != null) {
            return mImageLoader;
        } else {
            throw new IllegalStateException("ImageLoader not initialized");
        }
    }
}

解决了 !!!

我将www添加到http://shadyab.com/Mobile/vitrin/index.php并解决了它! !

从此更改您的代码:

Request.Method.POST 

对此:

Method.POST

在您的StringRequest中 Method仅是Request.java的接口。

您将获得响应字符串为:

[{"id":"1","title":"\u062e\u062f\u0645\u0627\u062a \u0641\u0646\u06cc
\u0645\u0647\u0646\u062f\u0633\u06cc"},{"id":"2","title":"\u0622\u0645\u0648\u06‌​32\u0634"}]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM