Problem with WWW,request the same url,second gets is null!

I via WWW to request “http://127.0.0.1/001.prefab”,
It gets a gameobject,but i use WWW to request “http://127.0.0.1/001.prefab” again,it gets null,Why? Thanks for your attention!

I don’t know off the top of my head, are you error checking the WWW operation to see if you’re getting any information from there?

My test code is,It work well in webplayer version 2.5, when upgrade webplayer to 2.6,this problem appears!

//help class
public class LoadHelp
{
    public static IEnumerator _LoadObject<T>(string url, LoadDelegate<T> asset) where T : UnityEngine.Object
    {
        www rerquest = new www(url);
        bool sh = false;
        if (url == "http://192.168.0.120/PipPip/api/requestasset.php?path=Test/scene002.prefab")
        {
            sh = true;
        }
        if (enable)
        {
            proList.Add(rerquest);
        }
        if (sh) addError("<<" + rerquest.isDone + " " + rerquest.progress + " " + rerquest.error);
        yield return rerquest;
        try
        {
            if (sh) addError(rerquest.isDone + " " + rerquest.progress + " " + rerquest.error);
            if (rerquest.isDone)
            {
                if (string.IsNullOrEmpty(rerquest.error))
                {
                    if (typeof(T) == typeof(Texture2D))
                    {
                        Texture2D tex = rerquest.texture;
                        if (tex != null  asset != null) asset(tex as T);
                    }
                    if (typeof(T) == typeof(AssetBundle))
                    {
                        if (asset != null) asset(rerquest.assetBundle as T);
                    }
                    if (typeof(T) == typeof(GameObject))
                    {
                        if (sh)
                        {
                            if (rerquest.assetBundle != null)
                            {
                                UnityEngine.Object[] objs = rerquest.assetBundle.LoadAll();
                                addError("count:" + objs.Length);
                            }
                            else
                            {
                                addError("none................");
                            }
                        }
                        GameObject mod = rerquest.assetBundle.mainAsset as GameObject;
                        if (sh) addError(mod.name + ">>");
                        if (mod != null  asset != null) asset(mod as T);
                    }
                    if (typeof(T) == typeof(UnityEngine.Object))
                    {
                        UnityEngine.Object mod = rerquest.assetBundle.mainAsset;
                        if (mod != null  asset != null) asset(mod as T);
                    }
                    if (typeof(T) == typeof(MovieTexture))
                    {
                        MovieTexture mov = rerquest.movie;
                        if (mov != null  asset != null) asset(mov as T);
                    }
                    if (typeof(T) == typeof(AudioClip))
                    {
                        AudioClip aud = rerquest.oggVorbis;
                        if (aud != null  asset != null) asset(aud as T);
                    }
                }
                else
                {
                    addError(rerquest.error);
                }
            }
        }
        catch (UnityException e) 
        {
            addError(e.Message);
        }
        finally
        {
            rerquest.Used = true;
            if (!enable)
            {
                rerquest.Dispose();
                rerquest = null;
            }
        }
    }
    public static void LoadObject<T>(MonoBehaviour thread, string url, LoadDelegate<T> asset) where T : UnityEngine.Object
    {
        thread.StartCoroutine(_LoadObject<T>(urlHash(url), asset));
    } 

}
//test class
using UnityEngine;
using System.Collections;
public class Class2:MonoBehaviour
{
    public string Url = "http://192.168.0.120/PipPip/api/requestasset.php?path=Test/scene002.prefab";
    GameObject Obj = null;
    void OnGUI()
    {
        if (GUILayout.Button("down"))
        {
            LoadHelp.LoadObject<GameObject>(this, Url, delegate(GameObject obj)
            {
                Obj = Instantiate(obj) as GameObject;
            });
        }
        if (GUILayout.Button("delete"))
        {
            DestroyImmediate(Obj, true);
        }
    }
}

Request the same asset,first WWW can get,but second gets null, and the rerquest.error is null

Loading the same AssetBundle twice is not supposed to work. Also, why would you do that, it makes no sense to reload data from the network which you already have. You should instead keep a reference, and use the same data.

That said,
-WWW.error should give a reasonable message stating this.
-If this worked in 2.5, it is a regression. We did make very significant changes to AssetBundle loading in 2.6, so it is possible that this behaviour changed, and we didn’t notice (as nobody is loading the same AssetBundle twice in testing).

So, if it changed from 2.5 and doesn’t give a proper error message, those are two bugs. Can you please verify that this is the case, and submit a bug report with an example project?

if ( typeof(T) == typeof(Texture2D) )
if ( T is Texture2D )
would be better (both to read and performance)

Also, is there a way to use WWW from editor?

Because i via WWW class to change scene,you know, the scene(gameobject) so impropriate memory(it’s very big) that must replace it with new scene(gameobject). but sometimes, player change a scene which is requested, The WWW class doesn’t work!!!
I think, WWW class in version2.5 is well except memory leak!