To them, the etiquette is that if you ask you've put the other person in a bind. Even if they want to say no, they feel pressure to say yes. You putting then in that situation is considered bad. So, don't ask, at least not directly. You can say "Guess what, I'll be in town next week!" and see if out of the blue they offer a place to stay. But even then there is subtly of reading between the lines, of do they actually want you to stay or are they just being polite but hope you'll read between the lines and not take them up on the offer. Generally you're supposed to refuse "Naw, I couldn't possibly stay and get in your way" and then they can come back and say "No really, it'd be great" if they really want you to stay and you might have to do this dance once or twice more to really verify it's ok.