In this paper we study the use of vehicles as sensors in a "vehicular sensor network" a new network paradigm that is critical for gathering valuable information in urban environments. In a vehicular sensor network, each vehicle is responsible for sensing one or more events, routing messages to other vehicles or infostations and processing sensed data. There are several critical differences between a vehicular sensor network and a "traditional" wireless sensor network, namely: 1) the vehicular network has high computation power; 2) it must provide high storage space; 3) it must have mobile sensor nodes. In addition, due to the sheer amount of data generated, sensed data is carried by each mobile sensor node. Admittedly, retrieving information from mobile sensor nodes is difficult. In this paper, we first identify a set of design choices for building a vehicular sensor network. From this we propose two storage architectures: content-addressed storage (CAS) and mobility-assist storage (MAS). While CAS utilizes infostations by hashing the key of an event to a specific infostation, MAS opportunistically disseminates events by "relaying" or sending events only to one's neighbors. CAS is appropriate for time-critical applications and MAS for delay-tolerant applications only if infrastructure is not available. In this paper, we propose data harvesting protocols for CAS and MAS: infostation-based and mobility-assist data harvesting protocols respectively.