Kannst du irgendwie nicht nur den Response code auswerten (401) sondern gucken, was wirklich gesendet wird?
Da gibt es Tools, wie z.B. Fiddler, die die jeden HTTP Request mitloggen. Dann kannst du gucken was dein Programm wirklich sendet und ob es mit dem übereinstimmt, was es senden sollte. So Trial&Error ist doch doof