7 hrs door knocking is absolutely knackering and Vince you're right, some people are rude to the point of being hostile so a hide like a rhino is necessary.
I agree with doorknocking being knackering; it does drain you, especially when it's 'no thank you' again and again and again, etc.
But I've never experienced anyone ever being overtly rude to me. Even the odd individual who I'd gotten out of the bath or shower were pleasant enough; though I've had that 'irritated look' from some.
Just give them a big smile. It's makes it difficult for people to be nasty to someone when you're smiling at them.
Also, (I'm no salesman mind), I always gave a quick 'get rid of me' option with the 'patter' I use.
I used to say, 'Good morning (or) afternoon'. Give a BIG SMILE, then pause for a second. Then say, 'Would you like a window cleaner?'
If they declined, I'd thank them for their time and give them a business card, telling them that if they ever changed their mind, they could call me. Then I'd naff off to the next house.
I started out with leaflets and when my confidence increased, I canvassed.
A big smile works a treat; even if you're missing two front teeth; like me!