您好我需要一些帮助,通过http url c#calls,
进行livestreamrecord录音我可以使用以下方式开始和停止流录制:
http://[username]:[password]@[wowza-ip-address]:8086/livestreamrecord?app=live&streamname=myStream&action=startRecording
直接将其输入浏览器或从代码重定向我的网页时,但当我尝试在网页上的c#中执行相同操作时,没有任何反应。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://[username]:[password]@[wowza-ip-address]:8086/livestreamrecord?app=live&streamname=myStream&action=startRecording);
request.Method = "GET";
request.Proxy = new WebProxy("[wowza-ip-address]", 8086);
request.Credentials = new NetworkCredential("[username]", "[password]");
request.ContentType = "application/x-www-form-urlencoded";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stm = response.GetResponseStream();
当我第一次尝试设置时,我不断收到401个未经授权的错误,上面的代码不久就抛出,但现在我被卡住了,因为没有错误被抛出,仍然没有开始录制。
响应返回:
<html><head><title>Wowza Streaming Engine 4 Perpetual Edition 4.0.1 build10615</title></head><body>Wowza Streaming Engine 4 Perpetual Edition 4.0.1 build10615</body></html>
表示未到达livestreamrecord页面。
本
答案 0 :(得分:1)
解决了这个问题,他们在请求中进行了302重定向,产生了401未经授权的响应。添加:
request.AllowAutoRedirect = false;
并删除:
request.Proxy = new WebProxy("[wowza-ip-address]", 8086);
解决了这个问题。
使用Proxy,它没有抛出错误但也没有记录。删除代理允许记录命令工作,但抛出401响应,然后通过将AllowAutoRedirect设置为false来解析。
答案 1 :(得分:0)
检查您是否启用了wowza rest api
启用Wowza REST-API 要在现有Wowza服务器中启用Wowza REST-API,请转到Wowza [install_dir] /conf/Server.xml的安装目录并添加以下代码段:
<RESTInterface>
<Enable>true</Enable>
<IPAddress>*</IPAddress>
<Port>8087</Port>
<!-- none, basic, digest-->
<AuthenticationMethod>none</AuthenticationMethod>
<DiagnosticURLEnable>true</DiagnosticURLEnable>
<SSLConfig>
<Enable>false</Enable>
<KeyStorePath></KeyStorePath>
<KeyStorePassword></KeyStorePassword>
<KeyStoreType>JKS</KeyStoreType>
<SSLProtocol>TLS</SSLProtocol>
<Algorithm>SunX509</Algorithm>
<CipherSuites></CipherSuites>
<Protocols></Protocols>
</SSLConfig>
<IPWhiteList>*</IPWhiteList>
<IPBlackList></IPBlackList>
<EnableXMLFile>false</EnableXMLFile>
<DocumentationServerEnable>true</DocumentationServerEnable>
<DocumentationServerPort>8089</DocumentationServerPort>
<!-- none, basic, digest-->
<DocumentationServerAuthenticationMethod>none</DocumentationServerAuthenticationMethod>
<Properties>
<Property>
<Name>restUserHTTPHeaders</Name>
<Value>Access-Control-Allow-Origin:*|Access-Control-Allow-Methods:OPTIONS,GET,PUT,DELETE,POST|Access-Control-Allow-Headers:Content-Type</Value>
</Property>
</Properties>
</RESTInterface>
确保此处的API端口设置为8087,但在您的示例中为8086
<IPWhiteList>*</IPWhiteList>
- 表示允许来自任何IP的API调用