Java 如何根据小程序的请求设置Accept Language标头
我不熟悉Java,但我需要从applet中向远程Web服务发出请求 webservice(.Net 1.1)使用Java 如何根据小程序的请求设置Accept Language标头,java,.net,http-headers,Java,.net,Http Headers,我不熟悉Java,但我需要从applet中向远程Web服务发出请求 webservice(.Net 1.1)使用HttpContext.Current.Request.UserLanguages[0]来确定要使用的语言。但是这个成员的值总是空的 那么,有没有一种方法可以将Accept Language标头与类似“en GB”的集合一起传递呢?这可能会查看Accept LanguageHTTP标头,您可以通过执行以下操作在Java中获得该标头 request.getHeader("Accept-L
HttpContext.Current.Request.UserLanguages[0]
来确定要使用的语言。但是这个成员的值总是空的
那么,有没有一种方法可以将Accept Language标头与类似“en GB”的集合一起传递呢?这可能会查看
Accept Language
HTTP标头,您可以通过执行以下操作在Java中获得该标头
request.getHeader("Accept-Language")
这可能会查看
Accept Language
HTTP头,您可以通过执行以下操作在Java中获得该头
request.getHeader("Accept-Language")
[新答覆]
好吧,我假设你在小程序中做了类似的事情
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 on construction请求页面时,插入下面描述的附加
标记。并修改小程序以发送该值。希望我清楚这一点
[删除]
[旧答案] 假设您确实希望在小程序的客户端上确定浏览器版本: 这在JavaAfaik中是不可能直接实现的,因为小程序不必关心它在哪个浏览器中运行。但你可以
- 使用javascript首先确定浏览器版本
- 使用javascirpt,然后动态写入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 on construction请求页面时,插入下面描述的附加
标记。并修改小程序以发送该值。希望我清楚这一点
[删除]
[旧答案] 假设您确实希望在小程序的客户端上确定浏览器版本: 这在JavaAfaik中是不可能直接实现的,因为小程序不必关心它在哪个浏览器中运行。但你可以
- 使用javascript首先确定浏览器版本
- 使用javascirpt,然后动态写入applet标记
- 并通过标记将浏览器版本传递给小程序
检查如何执行此操作的示例。如果您能够了解小程序正在运行的系统的默认语言(操作系统),则可以从
applet\getLocale()
获取。如果您确实需要首选的浏览器语言,您可以从ServletRequest#getLocale()
在servlet容器的服务器端获取该语言,并动态生成applet标记,将语言代码作为参数传递给applet。如果您知道默认语言(操作系统)对于小程序正在运行的系统,可以从applet#getLocale()
获取它。如果您确实需要首选的浏览器语言,您可以从ServletRequest#getLocale()
在servlet容器的服务器端获取它,并动态生成applet标记,将语言代码作为参数传递给applet。对于混淆表示歉意!!!我对Java一无所知。我正在处理一个遗留应用程序,它们使用HttpContext.Current.Request.UserLanguages[0]来确定要使用的语言。在JavaApplet中是否可以执行类似于HttpContext.Current.Request.UserLanguages[0]的操作?这个javaapplet调用一个webservice,我需要传递类似“en-GB”之类的消息。。。。。我曾尝试在webservice本身(.net 1.1)中检测到这一点,但没有发现HttpContext.Current.Request.UserLanguages[0]始终为空。我希望这能澄清一点,谢谢你的时间,为混乱道歉!!!我对Java一无所知。我正在处理一个遗留应用程序,它们使用HttpContext.Current.Request.UserLanguages[0]来确定要使用的语言。在JavaApplet中是否可以执行类似于HttpContext.Current.Request.UserLanguages[0]的操作?这个javaapplet调用一个webservice,我需要传递类似“en-GB”之类的消息。。。。。我曾尝试在webservice本身(.net 1.1)中检测到这一点,但没有发现HttpContext.Current.Request.UserLanguages[0]始终为空。我希望这能澄清一点,谢谢你的时间。改写问题以符合您的真实问题对不起。重新编写问题以适合您的真实问题抱歉,我得到了以下问题“HttpServletRequest无法解决”我在顶部添加了这个“import javax.servlet.http.*”;但仍然没有运气,找不到我需要做什么?我试图执行HttpServletRequest=ServletActionContext.getRequest();Locale userPreferredLocale=request.getLocale();有什么建议吗?很抱歉问一下,但我得到了以下问题“HttpServletRequest无法解决”,我在顶部“import javax.servlet.http.*”添加了这个问题;但是仍然没有运气,找不到我需要做什么?我试图执行HttpServletRequest=ServletActionContext.getRequest();Locale userPreferredLocale=request.getLocale();有什么建议吗?