我编辑了VideoViewDemo.java(由官方网站提供的Android Vitamio演示),目的是将cookie添加到Vitamio生成的请求标头中。
(使用方法“ setVideoPath”时,标题是自动发送的。)
原始VideoViewDemo.java:
...
} else {
/*
* Alternatively,for streaming media you can use
* mVideoView.setVideoURI(Uri.parse(URLstring));
*/
mVideoView.setVideoPath(path);
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();
...
编辑了VideoViewDemo.java:
...
} else {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Cookie", "test=abc; test2=def");
mVideoView.setVideoHeaders(headers);
/*
* Alternatively,for streaming media you can use
* mVideoView.setVideoURI(Uri.parse(URLstring));
*/
mVideoView.setVideoPath(path);
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();
...
然后,我使用Wireshark检查数据包。
我“预期”的结果:
我得到的结果是:
它表明,我尝试添加的cookie没有包含在Vitamio生成的请求标头中。
我的代码有什么问题吗?
还是有其他方法可以实现我的目标?
设备:HTC J Z321e
Android版本:4.1.1
Vitamio版本:4.2.0(2013-12-31)
IDE:Windows 7 32位上的Eclipse
图片网址:http://imgur.com/dY7qajG&lHoxxwo#0
最佳答案
终于找到了解决方案。标头采用ADOption样式,因此应按以下方式使用:
Map<String, String> headers = new HashMap<String, String>();
headers.put("headers", "Cookie:"+stringCookie+"\r\n"+"User-agent:Mozilla\r\n");
videoView.setVideoURI(Uri.parse(url), headers);
关于android - 如何使用Vitamio for Android的VideoView的“setVideoHeaders”方法添加cookie?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23126106/