如何在小程序请求时设置accept language标头

eoxn13cs  于 2021-06-30  发布在  Java
关注(0)|答案(3)|浏览(686)

我不熟悉java,但我需要从applet中向远程webservice发出请求。
webservice(.net 1.1)使用 HttpContext.Current.Request.UserLanguages[0] 决定要使用的语言。但是这个成员的值总是空的。
那么,有没有一种方法可以将accept-language头和类似“en-gb”的集合一起传递呢?

mhd8tkvw

mhd8tkvw1#

[新答案]
好吧,我假设你在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
....

如果language参数依赖于浏览器中设置的参数,那么使用.net方法是有意义的。当用户请求页面时,在页面上插入下面描述的附加 <parameter> 标签。并修改小程序以发送该值。希望我清楚这一点。
[已删除]
[旧答案]
假设您确实要确定小程序客户端的浏览器版本:
这在javaafaik中是不可能的,因为applet不必关心它在哪个浏览器中运行。但你可以
使用javascript首先确定浏览器版本
然后使用javascirpt动态地编写applet标记
以及通过标记将浏览器版本传递给applet
检查如何将参数传递给applet以获取有关如何执行此操作的示例。

w1jd8yoj

w1jd8yoj2#

如果您知道小程序运行的系统的默认语言(操作系统),您可以从 Applet#getLocale() . 如果您真的需要首选的浏览器语言,可以在服务器端的servlet容器中从 ServletRequest#getLocale() 并动态生成applet标签,将语言代码作为参数传递给applet。

6za6bjd0

6za6bjd03#

这可能是因为 Accept-Language http头,您可以在java中通过

request.getHeader("Accept-Language")

相关问题