0

我正在组合一个具有 Campfire 聊天功能的应用程序。大多数一切都在工作,比如列出房间并加入它们。我遇到的问题是将我们聊天室的 live.json 流式传输到多行文本框。

我所做的每一次尝试都会返回 401 Unauthorized 错误。如果我使用 curl 确认它有效并且我的令牌有效(curl -u [API TOKEN HERE]:X -v -N https://streaming.campfirenow.com/room/[ROOM NUMBER HERE]/live. json) 然后它工作正常并开始将房间中的任何内容流式传输到控制台。我什至尝试过以不同的方法先加入房间并收到 200 OK 响应而没有问题,但即使在调用该方法之后,流方法也会返回 401 Unauthorized。

到目前为止,这是我的代码:

private void streamRoom()
    {
        try
        {

            WebRequest request = WebRequest.Create("https://streaming.campfirenow.com/room/[ROOM_NUMBER]/live.json"); 
            request.Credentials = new NetworkCredential(myToken,"X"); 
            request.Method = "GET";  
            //request.ContentType = "application/json";

            string serverReply = string.Empty;

            using (WebResponse response = request.GetResponse())
            {
                using (Stream stream = response.GetResponseStream())
                {
                    StreamReader sr = new StreamReader(response.GetResponseStream());
                    serverReply = sr.ReadToEnd();
                    sr.Close();
                    response.GetResponseStream().Close();
                    convoBox.Text += ((HttpWebResponse)response).StatusDescription.ToString(); 
                }
            }
            convoBox.Text += serverReply.ToString();
            convoBox.Text += responseString;
        }

        catch (WebException wEx)
        {
            Console.WriteLine(wEx.Message.ToString());
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message.ToString());
        }
    }

现在,如果从我的代码中看不出来,那么我并不完全是专家。我确定我做错了什么,因为 curl 没有问题。我确定这种方法还有其他问题,但我被困在身份验证问题上,所以我没有机会调试其他任何东西。那就是你真正的专家进来帮助我用一些知识打我的头,所以我希望能超越这个。

感谢您的时间!

4

0 回答 0