Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据小程序的请求设置Accept Language标头_Java_.net_Http Headers - Fatal编程技术网

Java 如何根据小程序的请求设置Accept Language标头

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

我不熟悉Java,但我需要从applet中向远程Web服务发出请求

webservice(.Net 1.1)使用
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();有什么建议吗?