错误运行HttpWebRequest.GetResponse - 401未经授权

时间:2015-03-05 19:26:12

标签: asp.net sentiment-analysis

我正在使用Lymbix客户端库进行情绪分析。 当我运行代码时,我在(WebResponse)httpRequest.GetResponse()中收到错误:401-Unauthorized

(可在https://github.com/lymbix/.NET-Wrapper获得)

包含401错误的函数如下:

    private static string Post(string url, string data, List<string> headers)
    {
        HttpWebRequest httpRequest = (HttpWebRequest)HttpWebRequest.Create(url);
        httpRequest.Method = "POST";
        httpRequest.Accept = "application/json";
        httpRequest.ContentType = "application/x-www-form-urlencoded";

        if (headers != null)
        {
            foreach (string header in headers)
            {
                httpRequest.Headers.Add(header);
            }
        }

        // write request?

        byte[] postData = Encoding.UTF8.GetBytes(data.ToString());
        httpRequest.ContentLength = postData.Length;
        httpRequest.GetRequestStream().Write(postData, 0, postData.Length);

        // read response
        WebResponse webResponse = (WebResponse)httpRequest.GetResponse();
        StreamReader webResponseStream = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8);
        return webResponseStream.ReadToEnd();
    }

1 个答案:

答案 0 :(得分:0)

它说您未获得授权,因此您需要提供credentials

HttpWebRequest httpRequest = (HttpWebRequest)HttpWebRequest.Create(url);
httpRequest.Method = "POST";
httpRequest.Accept = "application/json";
httpRequest.ContentType = "application/x-www-form-urlencoded";
httpRequest.Credentials = new NetworkCredential("username","password");
httpRequest.UseDefaultCredentials = false; //the default is false, but I included it here just to illustrate that it needs to be false in order to use the specified credentials