Similar question to How do I flush the DNS cache on a OS X 10.6 machine?, but for iOS in general.
Specifically, my use case is to flush the DNS cache for applications I downloaded from App Store. Likely apps with native networking implemented (example: apps that use Foundation's NSURLSession).
Running an iPhone 7 on iOS 10.2.1 in China with frequent DNS hijacking happening before you even have time to connect to VPN, so rebooting the device would not be a sufficient solution.