There are 2 types of capture levels - socket level and wininet level data in loadrunner. These 2 capture levels are available in recording options. They specify the tool, where to hook and capture the communication packets from.
Most of the application though communicate at the socket level and the events get recorded by loadrunner using socket level data capture. But, sometimes the applications are designed to interact using wininet API and in such cases we should use wininet level capture in loadrunner, to capture the events successfully. So, the use of socket level/wininet level capture depends on how the application communicates.
Note: The requests might get duplicated if you are using socket level and wininet level data capture and you can comment the duplicated requests in the script.