我不熟悉Java,但我需要从applet中向远程Web服务发出请求。
Web服务(.Net 1.1)使用HttpContext.Current.Request.UserLanguages[0]
来确定要使用的语言。但是这个成员的价值总是空的。
那么有没有办法传递Accept-Language标题以及类似“en-GB”的内容?
答案 0 :(得分:5)
[新答案]
好的,我假设你在applet中做了类似的事情
URL url = new URL("http://www.whateverwebservice.com/passmealongthedata");
URLConnection urlconn = url.openConnection();
然后在执行实际请求之前设置Accept-Language
标头
//Assuming you know the language parameter you want to pass along you
urlconnection.setRequestProperty("Accept-Language", "en-GB");
//or "en-GB,en;q=0.7" or similar
....
continue with your program flow
....
如果语言参数应该取决于浏览器中的一个,那么使用.Net方法是有意义的。当用户使用页面上构建的applet请求页面时,插入下面描述的附加<parameter>
标记。并修改applet以发送该值。希望我对此很清楚。
[REMOVED]
[OLD ANSWER]
假设您确实想要在applet中确定客户端的浏览器版本:
这不可能直接来自Java AFAIK,因为applet不应该关心它在哪个浏览器中运行。但你可以
检查Passing Parameters to Applets以获取有关如何执行此操作的示例。
答案 1 :(得分:2)
这可能会查看Accept-Language
HTTP标头,您可以通过
request.getHeader("Accept-Language")
答案 2 :(得分:2)
如果您知道applet正在运行的系统的默认语言(操作系统)已经足够好了,您可以从Applet#getLocale()
获取它。如果您确实需要首选的浏览器语言,可以从ServletRequest#getLocale()
在servlet容器中获取服务器端,并动态生成applet标记,将语言代码作为参数传递给applet。