Default HTTP Call Over 2G/3G network

I need help in implementing one solution. I want to make HTTP call on 2G/3G network if both the networks are available(i.e Wifi and 2G/3G). I need to set the preference to use mobile cellular network.

For this I tried using the functions of ConnectivityManager class such as setNetworkPrefrence, starUsingNetworkFeature, stopUsingNetworkFeature and its working fine but it is taking 2-3 seconds to switch network traffic to 2G/3G network. Is there any other approach by which we can implement this.