This is America. If you want to haggle, take your grandma to a garage sale. In the land of the free, we pay the sticker price (+ tax). That is the law according to consumer protection laws that already exist in every single state. So if you pay upfront a hotel's published rate and the taxes, you have paid. Refuse to pay anything else. How?
1) Refuse to pay
When you check in, if the hotel front desk clerk refuses to give you your key without paying an additional rate for the night (aka a "resort fee") refuse to pay. If the clerk is confused, ask for a manager. Tell the manager you already paid the published rate for the room and all necessary taxes. Most managers like to keep customers happy so some nice managers might waive the additional room rate / resort fee. Don’t get too mad at the front desk clerk. They likely know it is a scam and feel bad charging you but they’d also like to keep their job. They likely didn’t make up this illegal practice, the corporate office did.
2) Dispute the charge with your credit card company
If you cannot get your room key without paying an additional rate / fee, just hand over your credit card. After your second room rate / resort fee has posted to your account, call your credit card company and dispute the fee. Your credit card company might ask for documentation. One example would be to send them the hotel's own website advertising free wireless internet. Then show them your bill when they charged you for internet in the name of a resort fee.
3) File a consumer complaint with the Attorney General
There is an Attorney General for every state in America. The Attorneys General are responsible for enforcing existing state laws about consumer protection. Forty seven Attorneys Generals are currently investigating hotel resort fees for being deceptive and misleading (AG talk for illegal) and Marriott was already subpoenaed related to the investigation. Many people have successfully gotten back their resort fees by filing a consumer complaint with their Attorney General. You can file a complaint with the Attorney General of the state you stayed in or with your own state Attorney General (if you live in another state and booked the hotel while sitting at home). Many people have successfully worked with their Attorney General after filing a consumer complaint to force the hotel to mail them a check back for their resort fee. ProTip! We heard a rumor that the only AG in the country not working with consumers is in Nevada, so if you stayed in Nevada, try the Attorney General of your home state instead. These complaints take 60 seconds to fill out. Here are the links to filing a consumer complaint with the Attorney General.
New York: https://ag.ny.gov/consumer-frauds/Filing-a-Consumer-Complaint
Washington DC: https://oag.dc.gov/consumer-protection/other-consumer-help-agencies-and-websites/submit-consumer-complaint
New Mexico: https://www.nmag.gov/consumer-complaint-instructions.aspx
New Jersey: https://www.njconsumeraffairs.gov/Pages/File-a-Complaint.aspx
If yours is not listed above, just Google/Bing/DuckDuckGo "attorney general consume complaint” + your state
4) Sue in small claims court
If you didn't pay by credit card and/or your Attorney General is not helping you, you can always sue in your local small claims court. This might seem daunting but small claims court is set up to be extremely easy so that anyone screwed over can bring a claim. You do not need a lawyer in small claims court. If you booked the hotel online sitting in your home, you have jurisdiction in your local small claims court. Go there, ask for some help from the staff in the small claims court office and you can file a suit for your additional room rate / resort fee back. You will likely have to pay a fee which varies in small claims courts across the country but usually ranges from $10 to $40. You can get this fee back with your additional resort fee / additional hotel rate (just ask the court staff to help). Again, no lawyer needed. The hotel will most likely just mail you a check and you will never see small claims court. The big hotel companies are not going to waste their $500 an hour attorneys fighting your $100 (+ court fees) claim.
NOTE: Nothing above is intended to be legal advice. If you want legal advice, talk to a lawyer. If you want hotel advice, reread this page. If you want a gordita supreme, go to Taco Bell.