HTTP providers send information to or obtain information from a Wowza Streaming Engine™ media server software instance and display that information on an HTTP web page. This article shows how to create and configure a basic custom HTTP provider using the Wowza Streaming Engine Java API.
Prerequisites
Install and configure the Wowza™ IDE for Eclipse. See Extend Wowza Streaming Engine using the Wowza IDE.
Create the provider
Each HTTP provider extends the HTTPProvider2Base as follows:
class MyHTTPProvider extends HTTPProvider2Base
This requires that you define the onHTTPRequest function (this is where you can handle each request made to the provider):
public void onHTTPRequest(IVHost vhost, IHTTPRequest req, IHTTPResponse resp) {}
Here's a simple provider that returns some XML with an output element that contains the string 'hello world':
class MyHTTPProvider extends HTTPProvider2Base {
@Override
public void onHTTPRequest(IVHost vhost, IHTTPRequest req, IHTTPResponse resp) {
StringBuffer ret = new StringBuffer();
ret.append("<?xml version="1.0"?>
<WowzaStreamingEngine>");
ret.append("<output>Hello World!</output>");
ret.append("</WowzaStreamingEngine>");
try
{
resp.setHeader("Content-Type", "text/xml");
OutputStream out = resp.getOutputStream();
byte[] outBytes = ret.toString().getBytes();
out.write(outBytes);
}
catch (Exception e)
{
WMSLoggerFactory.getLogger(HTTPServerVersion.class).error("HTTPProviderStreamReset.onHTTPRequest: "+e.toString());
e.printStackTrace();
}
}
}
Configure the provider
Compile and run the HTTP provider, then put its .jar file in the [install-dir]/lib folder and add it to the VHost.xml file with the other admin host port 8086 providers as follows:
<HTTPProvider> <BaseClass>com.wowza.wms.http.MyHTTPProvider</BaseClass> <RequestFilters>helloworld*</RequestFilters> <AuthenticationMethod>none</AuthenticationMethod> </HTTPProvider>
Place the new provider above any other providers that have a wildcard for the RequestFilters property; in other words, put it above any HTTP provider with <RequestFilters>*</RequestFilters>. Since the wildcard is a catchall for any previously unmatched request filters, anything below it in the list isn't executed.
After adding the provider, restart Wowza Streaming Engine.
Then, go to http://[wowza-ip-address]:8086/helloworld to see the information.
Useful HTTP provider calls
The following calls are useful when developing HTTP providers.
Get HTTP request URL:
String path = super.getPath(req, false);
Get HTTP request header value:
String headerValue = req.getHeader(headerName);
Set HTTP response header value:
resp.setHeader(headerName, headerValue);
Set HTTP response status:
resp.setResponseCode(404);




