Tag: http headers

版本化REST API和供应商特定的内容类型

我在这个主题中阅读了很多关于REST API版本的内容: API版本化的最佳实践? 因此,我想使用HTTP-Accept-Header来指示客户端要求的版本。 但是如何在我的应用程序中应用它? 因此,有哪些变化? 编组人员如何知道应该使用哪个版本? 我必须注册我的类型吗? 我所知道的是我必须更改@Produces -Annotation的内容 @GET @Path(“/locations”) @Produces(“application/vnd.mycompany-v1+xml”) Location[] getLocations(); 但还有什么必须改变?

在JSF自定义validation器中区分ajax请求和完整请求

我的validation器需要知道它是完整请求还是ajax请求。 在我当前的解决方案中,我检查X-Requested-With元素的http请求标头: public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException { HttpServletRequest req = (HttpServletRequest) context.getExternalContext().getRequest(); if (req.getHeader(“X-Requested-With”) != null) { // do something } else { // do something else } … } 有没有更好的方法来实现这一目标? 对于不同的浏览器/ javascript库,我的解决方案是否“安全”? 更新: 刚发现只有当ajax请求来自Primefaces组件库( 标签)时,才会出现X-Requested-With标头。 如果我使用普通的JSF 它就不存在了。 所以我的方法不适用于 。 使用有一个不同的标题: Faces-Request:partial/ajax Osw提出的解决方案适用于 和 : PartialViewContext#isAjaxRequest()

哪些Java库执行HTTP Accept Header Parsing?

哪些Java库解析HTTP Accept标头?

如何在jetty服务器中为CSS,Javascript,图像等静态资源设置expires头

我看到有类似的问题,但找不到合适的答案.. 任何新的答案将不胜感激。

使用AWS Java SDK为现有S3对象设置Expires标头

我正在更新Amazon S3存储桶中的现有对象以设置一些元数据。 我想为每个对象设置HTTP Expires标头以更好地处理HTTP / 1.0客户端。 我们正在使用AWS Java SDK ,它允许对对象进行元数据更改,而无需重新上传对象内容。 我们使用CopyObjectRequest将对象复制到自身。 ObjectMetadata类允许我们设置Cache-Control , Content-Type和其他几个标头。 但不是Expires标题。 我知道S3使用REST API存储并为对象PUT提供Expires头。 有没有办法从Java SDK中执行此操作? 更新以指示我们正在使用 CopyObjectRequest

设置响应标头不使用filter – RESTeasy

我正在尝试使用RESTeasy在RESTful端点的响应中设置标头值。 我知道我可以使用@HeaderParam读取头参数,但我想更改响应的头参数的值。 如何在不使用filter的情况下执行此操作?

如何在Java中重定向请求时在HTTP标头中传递数据

是否可以在HTTP Header中传递一些数据,同时将请求从一个服务器重定向到另一个服务器。 这是我的场景 ,我有一个通用filter,每个请求都通过它。 现在,基于某些条件,我使用API objHttpServletResponse.sendRedirect(strURL)将请求重定向到某个不同的服务器。 但是,问题是,当我在响应头中设置一些数据时,如objHttpServletResponse.setHeader(“Key”, “Value”); 这在重定向的服务器中不可用。 所以,我的问题是, 1.重定向请求时,有没有办法在标头中传递一些数据? 2.如果没有,在重定向请求时发送一​​些数据的其他可能方法是什么? 请注意:其他几种方式,比如 使用URL参数: objHttpServletResponse.sendRedirect(strURL+”?param=”+ strParamValue); 要么 使用session: HttpSession session = httpRequest.getSession(); session.setAttribute(“Key”, “Value”); HttpSession session = httpRequest.getSession(); session.setAttribute(“Key”, “Value”); 不是我所期待的。

REST应用程序中的基本身份validation

环境: JAVA Glassfish的 不同机器中的REST服务 带有AJAX和JQuery的HTML5客户端 新泽西 这是我到目前为止所实现的: HTML5客户端### $(‘#btnSignIn’).click(function () { var username = $(“#username”).val(); var password = $(“#password”).val(); function make_base_auth(user, password) { var tok = user + ‘:’ + password; var final = “Basic ” + $.base64.encode(tok); console.log(“FINAL—->” + final); alert(“FINAL—->” + final); return final; } $.ajax({ type: “GET”, contentType: “application/json”, url: “http://localhost:8080/SesameService/webresources/users/secured/login”, crossDomain: […]

如何在RESTEasy客户端框架中设置HTTP标头?

RESTEasy(一个JAX-RS实现)有一个很好的客户端框架 ,例如: RegisterBuiltin.register(ResteasyProviderFactory.getInstance()); SimpleClient client = ProxyFactory.create(SimpleClient.class, “http://localhost:8081”); client.putBasic(“hello world”); 你如何设置HTTP标头? 澄清: jkeeler提出的解决方案是一种很好的方法,但我想在ProxyFactory级别设置HTTP标头,我不想将标头传递给客户端对象。 有任何想法吗?

Restlet客户端如何处理媒体类型的请求?

我有几个关于Restlet客户端如何处理媒体类型标题的新手问题: 如果我传入一个类型为a)POJO或b)一个InputStream实例的实体,Restlet客户端会在’content-type’标头中放入什么? 什么是“接受”标题? 如果我想在HTTP主体中传输JSON格式的POJO,我是否需要序列化POJO并将其作为JSON字符串传递或者我可以传入POJO而Restlet将完成剩下的工作吗? 如果是前一种情况,我是否需要指定’content-type’标题以及如何? 非常感谢!