How do I connect to a URL on my cell phone?

How do I connect to a URL on my cell phone?


When developing for mobile devices, you usually need to test your application on the

device itself. The emulator included with the SDK is not always sufficient and it might be cumbersome

to plug in a real device each time you want to test an application. In this scenario, it is possible to use a virtual proxy that will intercept any HTTP or HTTPS connection from your device and rout them through a computer running a web server. This way, even if the device has no direct connection available, it can still access network resources located on another computer on the same network.


In order to achieve this task we will first need two things: - You must have a web server running on your computer (for example) - Your phone needs support for tethering (or 'Host' mode)


Note: In order to use the Host mode your carrier must be willing to allow it. In most cases they will require you to pay for a separate plan in order to make this possible. You should contact your service provider before seeking out any methods of configuring tethering on a cell phone. This article assumes that you have purchased a data plan with your carrier and that it is activated. Once you have purchased a data plan, your carrier can provide you with the required information in order to configure tethering on your device. If you are not sure whether or not tethering is allowed, then consult your user guide for information about how to enable the feature on your specific model of phone.


- A computer (desktop or laptop) running Windows XP/Vista/7 - An Android device with USB Debugging enabled - The latest version of the Android SDK for your platform installed

Note: If you are using a virtual machine to emulate your mobile device, ensure that it is configured network access. Otherwise, HTTP requests will fail on the emulator.

Step One After successfully installing the Android SDK and creating either an Android Virtual Device or testing on a physical device, our next task is to install some optional development tools onto your computer. These aren't strictly required in order for this method to work but they do provide some convenience when debugging mobile applications. To install these tools open up a command prompt window by going to Start -> Programs -> Android SDK Tools and then type in the following command:

Note: The tools directory is case sensitive so be sure to use 'android' instead of 'Android'. If you installed the SDK in a different location on your computer, you'll need to edit this path to the correct one. If everything went according to plan, you should get a message saying that everything was completed successfully. At this point, we're ready to start coding our proxy server.

Step Two The code needed for running our proxy is very simple thanks to an open source Java library called HttpURLConnection which provides an easy way for us to create HTTP requests and process their responses. Before proceeding ahead, download this ZIP archive with all of the required files (available here ). Once you've downloaded it, extract its contents to a temporary directory. Now we'll need to edit the Java source file called .

You should be able to use any standard text editor such as Notepad (Windows), TextEdit (MacOS X) or gedit (Linux).

Note: If you don't have any experience with editing JAVA code then please refer to this article for instructions on how to install and configure your preferred text editor.

Once you're finished editing the source file, save your changes and compile it by typing in this command: javac -d bin src/proxy/*.java *. This will create two new JAR files which we will need for running our proxy. We will also need to download three additional libraries which our proxy depends on: - HTTP Components Core - httpcore-4.0-alpha2.jar

- Protocol Buffers Core - protobuf-java-2.5.0.jar

- Xml Parser for Java - xmlparsejava-20080225.jar Next, copy all of the JAR files into a new directory called lib in your temporary directory (the same one where you previously extracted the contents of the ZIP file). After that's done, rename the original ProxyServer zip archive to ProxyServerOriginal and then rename this newly created proxy directory to ProxyServer . That completes all of the required steps for setting up your development environment so now let's begin building our proxy server.

Step Three

Using your preferred text editor, open up a new file called and add the following lines:


servlet.address=localhost Be sure to set servlet.port to the same port number that you previously selected for your HTTP server (the one that we configured inside of the httpd-vhosts.conf ). If you used 8000 then use that value here as well; otherwise, use whatever port number might make sense for your own computer (just be sure not to overwrite any existing services on this port). Next, substitute localhost with the IP address of your own machine or an unused local IP address such as . This is the only code that we need to configure for our proxy server so all that's left now is to run it using this command: java -cp lib/*:lib/* src/proxy/ProxyServer

If you previously configured a different port number then be sure to change the value of servlet.port as well, just like we did before when configuring our properties file. After executing this command you should see a lot of output being printed out into your console window as the Android Debug Bridge begins sending down debugging information from your testing device or AVD instance (this can take up quite a bit of memory!). Don't worry about this at all. Instead, what we're really interested in is that first message that says: Proxy Server Listening on port: 8080 .