I'm curious as to how I could figure out the API URL an Android application (any app I have installed) uses if it makes API calls to some online server (a RESTful service for example). I presume I have to capture packets on the device and maybe analyse them in Wireshark or something to find the URL? I'm fairly competent in Java/Android development, but a bit lost when it comes to any sort of network analysis business.
The best way in your case is store api url's in server because you can change them later. You'd create one url to fetch your api urls. Build your app based on an architecture like this. And don't forget anyone can see your server urls.
Open your mobile phone network setting and set the http proxy and then you can grab request from you android app. Charles download url https://www.charlesproxy.com/。 Open WIFI wireless hotspot on your computer then connect to the hotspot。 Now you can use wireshark or httpScoop to grab request from you android app.
Android App Links are HTTP URLs that bring users directly to specific content in your Android app. Android App Links can drive more traffic to your app, help you discover which app content is used most, and make it easier for users to share and find content in an installed app.
you can do this with help of WireShark. I am listing steps here
emulator @<AVD name>
)adb install app_file_name.apk
select interface which you want to capture and click start to start capturing.
now start using that app so packets will transfer to and fro and wireshark will capture it.
if you have used app covering all sort of activity then you can stop wireshark to capture packets.
now start main business to analyse packets carefully but not all packets are usefull for our job. so lets filter packets which are relevant for you. lets your IP address is 192.168.0.32 then filter all the packets whose IP is this. so filter expression will be ip.addr==192.168.0.32
apply this filter. still we an apply another filter to list up only relevant packets only so possibly that app is accessing API with HTTP protocol so apply HTTP filter. expression would be http
. you can apply both are filter at once ip.addr==192.168.0.32 and http
press enter to apply.
see the info carefully for listed packets you will see lot of important details, API keys, cookies etc
A very fast method.
Go to PlayStore, search for Packet Capture
Download, install and run.
It's easy simple and fast. It will give you details about the APIs, URLs and response with their headers.
This application follows the concept of Packet Sniffing. Thus, this might not work with much secured applications like WhatsApp, Facebook, Twitter.
UPDATE 1:
The Packet Capture is no more available in playstore, try OS Monitor
UPDATE 2:
The Packet Capture is available again.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With