Multihop data delivery between vehicles is an important technique to support the implementation of vehicular ad hoc networks (VANETs). However, many inherent characteristics of VANETs (e.g., dynamic network topology) bring great challenges to the data delivery. In particular, dynamic topology and intermittent connectivity make it difficult to design an efficient and stable geographic routing protocol for different applications of VANETs. To solve this problem, the paper proposes an adaptive routing protocol based on QoS and vehicular density (ARP-QD) in urban VANETs environments. The basic idea is to find the best path for end-to-end data delivery, which can satisfy diverse QoS requirements by considering hop count and link duration simultaneously. To reduce the network overhead furthermore, ARP-QD adopts an adaptive neighbor discovery algorithm to obtain neighbors' information based on local vehicular density. In addition, a recovery strategy with carry-and-forward is utilized when the routing path is disrupted. Numerical simulations show that the proposed ARP-QD has higher delivery ratio than two prominent routing protocols in VANETs, without giving large compromise on delivery delay. The adaptivity of ARP-QD is also analyzed.