我正在组合一个具有 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 没有问题。我确定这种方法还有其他问题,但我被困在身份验证问题上,所以我没有机会调试其他任何东西。那就是你真正的专家进来帮助我用一些知识打我的头,所以我希望能超越这个。
感谢您的时间!