Server returned HTTP status code 401:
Since publishing my UFT book The UFT API Testing Manifesto – A step-by-step, hands-on testing guide for the masses, I've received a few emails from folks who are receiving this error message: Server returned HTTP status code 401: Unauthorized while attempting to run their API tests.
More about the 401 Unauthorized error
According to Wikipedia, the 401 Unauthorized message is “401 Unauthorized is similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. The response must include a WWW-Authenticate header field containing a challenge applicable to the requested resource. See Basic access authentication and Digest access authentication.”
Why this 401 error occurs in UFT API
Sometimes the server you're testing against expects to receive authentication information before transport. For this reason, you must add some additional information to your API request's HTTP header. This can be done using custom code in BeforeApplyProtocolSettings event handler.
How to add a username and password to your HTTP Request Header
- In your test, click on the web service activity on your main canvas area.
- Under its Properties section, click on the Events icon.
- Select the Create a default handler…option from the BeforeApplyProtocolSettings event.
- In the TestUserCode.cs file, under the StServiceCallActivity5_OnBeforeApplyProtocolSettings method, add the following (note your StServiceCallActivity number might be different)
- Create a string variable that contains the user name and password your server needs for authentication:
string myAuth = “Basic” + Convert.FromBase64String(System.Text.Encoding.ASCII.GetBytes(“YourUserName:YourPassword));
- Next, add your authentication variable value as a parameter to the HttpRequestHeaders Add method:
- Run your test. You should no longer receive a 401 error message.
More UFT API Automation Awesomeness
For more UFT API Automation Awesomeness, tips, tricks and how-tos, check out my new book The UFT API Testing Manifesto – A step-by-step, hands-on testing guide for the masses –now available on Amazon.com!
Don't own a Kindle? No Problem — you can still read my book!
I'm aware that some of you have had trouble accessing my books in the past. The truth is that you don't need a Kindle! There are a variety of free ways you can read a Kindle eBook:
- Read it on your PC or Mac (Kindle Cloud Reader)
- Read it on your iPhone or iPad (iTunes App)
- Read it on your Android (Kindle for Android)
- Read it on your Blackberry (Kindle for Blackberry)
In short, it's really simple to read Amazon Kindle books, no matter what type of device you use to access the Internet.