While mobile networks are evolving rapidly, the battle between ever-growing traffic demands and out-paced network capacities will continue and require more efficient solutions. Emerging techniques such as mobile edge computing and device-to-device (D2D) communications can help relieve traffic at the mobile edge and accommodate surging traffic demands from various content-centric services. In this work, we focus on exploiting device caching and user collaboration to offload content distribution traffic. Specifically, we investigate the request offloading problem, which aims to appropriately select caching devices and maximize the content requests that can be fulfilled through D2D communications. Given the constraints of individual transmission and caching capacities, the number of available D2D channels, and information privacy with social-awareness, we can decouple the request offloading problem into two subproblems, i.e., the device caching and matching problem, and the D2D channel allocation problem. As we prove that both problems are NP-hard, we propose efficient algorithms that iteratively make a best local decision in each step. Simulation results show that the proposed algorithms perform fairly closely to optimal solutions in small-scale instances and outperform the reference schemes under various situations.