C#程序显示“远程服务器返回错误:(401)未经授权。”

时间:2018-10-17 20:01:19

标签: c# rest api

我在连接到远程服务器时遇到问题:

远程服务器返回错误:(401)未经授权。

下面几乎是我用于程序的完整代码。我想从API中获取数据,但是服务器无法正确进行身份验证。我知道有一种添加您喜欢的凭据的方法,但是我尝试了所有可能的添加方式。不确定将其插入哪里,以便可以建立连接。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Net;

namespace RestClient
{
    public enum httpVerb
    {
        GET,
        POST,
        PUT,
        DELETE,
    }

    class RestClient
    {
        public string endPoint { get; set; }
        public httpVerb httpMethod { get; set; }

        public RestClient()
        {
            endPoint = string.Empty;
            httpMethod = httpVerb.GET;
        }

        public string makeRequest()
        {
            string strResponseVlaue = string.Empty;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(endPoint);
            request.Method = httpMethod.ToString();

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    throw new ApplicationException("Error Code: "+ response.StatusCode.ToString());
                }
                //Process the response stream

            using (Stream responseStream = response.GetResponseStream())
                {
                    if(responseStream != null)
                    {
                        using(StreamReader reader = new StreamReader(responseStream))
                        {
                            strResponseVlaue = reader.ReadToEnd();
                        }
                    }
                } //End of Response Stream
            }// End Of Using Reponse

                return strResponseVlaue;
        }
    }
}

谢谢, 吉米·迪安(Jimmy Dean)

编辑:

myReq.UseDefaultCredentials = true;
myReq.PreAuthenticate = true;
myReq.Credentials = CredentialCache.DefaultCredentials;

对于已经提出的问题。我正在尝试使用此功能,还有其他一些我尝试过的功能。该代码很好,只是没有授权连接,这就是我遇到的问题。

0 个答案:

没有答案