正在连接到C#中的web服务

本文关键字:中的 web 服务 连接 | 更新日期: 2023-09-27 18:07:35

我正在尝试连接到洛克希德·马丁公司的web服务,该服务位于此处。我看了其他示例,并使用以下代码尝试建立连接。在这一点上,我只想知道我是否已经建立了连接并获得了授权,但我反复收到一个异常,说

未经系统授权。网HttpWebRequest。GetResponse((

我是否正确设置了web请求和响应?有没有其他方法可以简单地让我知道我是否成功连接了?

            try
        {
            //Connect to the Lockheed Martin web client
            WebRequest client = WebRequest.Create("https://www.elabs.testafss.net/Website2/ws");
            string username = "username";
            string password = "password";
            string credentials = Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(username + ":" + password));
            client.Headers.Add("Authorization", "Basic " + credentials);
            WebResponse response = client.GetResponse();
            Console.WriteLine(((HttpWebResponse)response).StatusDescription);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }

正在连接到C#中的web服务

可能您的用户/密码不正确,查看web服务的文档,您的代码正在复制与以下示例中完全相同的哈希:

身份验证-基本身份验证

使用基本身份验证协议执行身份验证。每个web服务请求都会提供一个授权标头。这有时被称为先发制人的身份验证。标头如下所示:
Authorization: Basic Vendor_ID:Vendor_Password
其中Vendor_ID:Vendor_Password字符串被转换为Base64。

示例

Authorization: Basic JoesFlightServices:SecretPW
转换为Base64:
Authorization: Basic Sm9lc0ZsaWdodFNlcnZpY2VzOlNlY3JldFBX
请注意,转换到Base64并不能确保信息是私有的。我们使用HTTPS对包括标头在内的整个HTTP消息进行加密。