Client side verification would be useless, because, if anyone knows the URL will be able to access it. And, no matter how much code obfuscation you use, it will be never hidden from a determinant hacker. Furthermore hacking is even not necessary if the request is route through a proxy, log will revealed URL anyway.
You should do a server side verification and have a simple script to see where those request are coming from.
Every HTTP request provide some information about the client. You can look into that information to determine where the request exactly came from. To add little bit more security you can modify and set your own value in HTTP header from client side.
Implementation would be different in Android and for IOS as the challenges are also different .
Android
On Android, it is relatively easy to publish an app into market, and if anyone knows your url, they can do the same trick with HTTP request and release another app. To prevent that:-
Every android app is signed by a certificate, you can send signature value with HTTP header verify that on server side. See this for how to get signature from android app.
Remember that app signature is unique and this is how Google Play store identity an app, So their is no way another developer will get a hold on that. if it doesn't satisfy you add additional header value (some secret) and change it every with every update.
HttpURLConnection and other HTTP API from Android or from Apache provide support to do that.
iOS
See this for how to modify http header on iOS.
In this case one problem is still exist is anyone can create an iOS app and do same but, on iOS, people can not simply do that as every app goes through lengthy Apple verification process. You can even have rotating secret, or generating it on the fly, with every new app update or http request, which only your server will be able to verify to make things more difficult.