如何访问受密码保护的网络上的 mp4 视频
how to access the mp4 video on web which is password protected
我正在使用 vaadin video 将一些视频集成到我的应用程序中。
这些视频位于受密码保护的网络上。我正在使用以下方法,但它对我不起作用。它一直要求我输入用户名和密码。
URL url = new URL(Constants.VIDEO_HTTP_ADDRESS + fileName + ".mp4");
URLConnection uc = url.openConnection();
String userpass = Constants.VIDEO_HTTP_ADDRESS_USERNAME + ":" + Constants.VIDEO_HTTP_ADDRESS_PASSWORD;
String basicAuth = "Basic " + new String(new Base64().encode(userpass.getBytes()));
uc.setRequestProperty("Authorization", basicAuth);
....
....
final Video v = new Video(label);
ExternalResource fileResource;
fileResource = new ExternalResource(url);
v.setSources(fileResource);
我有用户名和密码,我想将这些视频集成到我的应用程序中,这样他们就不需要明确的用户名和密码。
正如@f1sh 在他的评论中指出的那样,您需要使用 URLConnection
来获取视频资源。您可以使用 StreamResource
而不是 ExternalResource
,它允许从提供的 InputStream
加载资源。
类似的东西应该可以工作:
Video v = new Video();
v.setSource(new StreamResource(new StreamSource() {
@Override
public InputStream getStream() {
try {
URL url = new URL(Constants.VIDEO_HTTP_ADDRESS + fileName + ".mp4");
URLConnection uc = url.openConnection();
String userpass = Constants.VIDEO_HTTP_ADDRESS_USERNAME + ":" + Constants.VIDEO_HTTP_ADDRESS_PASSWORD;
String basicAuth = "Basic " + new String(new Base64().encode(userpass.getBytes()));
uc.setRequestProperty("Authorization", basicAuth);
return uc.getInputStream();
} catch (IOException e) {
//add some exception handling here
}
}
}, fileName + ".mp4"));
我正在使用 vaadin video 将一些视频集成到我的应用程序中。 这些视频位于受密码保护的网络上。我正在使用以下方法,但它对我不起作用。它一直要求我输入用户名和密码。
URL url = new URL(Constants.VIDEO_HTTP_ADDRESS + fileName + ".mp4");
URLConnection uc = url.openConnection();
String userpass = Constants.VIDEO_HTTP_ADDRESS_USERNAME + ":" + Constants.VIDEO_HTTP_ADDRESS_PASSWORD;
String basicAuth = "Basic " + new String(new Base64().encode(userpass.getBytes()));
uc.setRequestProperty("Authorization", basicAuth);
....
....
final Video v = new Video(label);
ExternalResource fileResource;
fileResource = new ExternalResource(url);
v.setSources(fileResource);
我有用户名和密码,我想将这些视频集成到我的应用程序中,这样他们就不需要明确的用户名和密码。
正如@f1sh 在他的评论中指出的那样,您需要使用 URLConnection
来获取视频资源。您可以使用 StreamResource
而不是 ExternalResource
,它允许从提供的 InputStream
加载资源。
类似的东西应该可以工作:
Video v = new Video();
v.setSource(new StreamResource(new StreamSource() {
@Override
public InputStream getStream() {
try {
URL url = new URL(Constants.VIDEO_HTTP_ADDRESS + fileName + ".mp4");
URLConnection uc = url.openConnection();
String userpass = Constants.VIDEO_HTTP_ADDRESS_USERNAME + ":" + Constants.VIDEO_HTTP_ADDRESS_PASSWORD;
String basicAuth = "Basic " + new String(new Base64().encode(userpass.getBytes()));
uc.setRequestProperty("Authorization", basicAuth);
return uc.getInputStream();
} catch (IOException e) {
//add some exception handling here
}
}
}, fileName + ".mp4"));