当前位置: 首页 > 知识库问答 >
问题:

Curl token request等效于泽西岛

唐睿
2023-03-14

我知道这个问题已经被问了一百万次,但我不知道我的代币请求有什么问题。

curl中的命令是

Curl-v-X POST-H"授权:基本XXXXXXXXXXXXXXXXXXXXXXXXXX"-H"内容-类型:应用程序/x-www-form-urlencoded; charset=UTF-8"-k-d"grant_type=密码

转换为泽西它应该是:

Client client = Client.create();
WebResource webResource = client.resource("https://localhost/sso/token");
String appKey= "Basic  XXXXXXXXXXXXXXXXXXXXXX"
String input="grant_type=password&username=XXXXX&password=XXXXX";
    ClientResponse response = null; 
            response = webResource.
                    header("Authorization", appKey).
                    header("Content-Type", "/x-www-form-urlencoded;charset=UTF-8").
                    accept("application/json").
                    post(ClientResponse.class, input);




    if (response.getStatus() != 200) {
                    throw new RuntimeException("Failed : HTTP error code : "
                            + response.getStatus());
                }
                String output = response.getEntity(String.class);
                System.out.println("Server response .... \n");
                System.out.println(output);
            } catch (Exception e) {
                e.printStackTrace();
        }**

我得到的答案是:

JAVAlang.RuntimeException:失败:HTTP错误代码:415位于com。javacodegeeks。企业Rest运动衫jerseyclient。JerseyClientAccessToken。main(JerseyClientAccessToken.java:67)

有人能告诉我我做错了什么吗?

共有1个答案

东门奕
2023-03-14

这个:

header("Content-Type", "application/json;charset=UTF-8");

是不一样的:

Content-Type: "application/x-www-form-urlencoded;charset=UTF-8" 

所以你应该改变它。这就是为什么会出现415错误(不支持的媒体类型)。

 类似资料:
  • 我目前使用的是球衣 我现在要做的是设置泽西,这样当查询参数进来时(比如缩进),我可以告诉Jackson以“更漂亮的格式,也就是缩进”序列化JSON。您可以通过使用SerializationConfig.Feature.INDENT_OUTPUT配置JSON映射器来轻松地告诉Jackson这样做。 问题是,我如何在每个请求的基础上获取一个queryparam并使用它来修改Jackson的输出?

  • 问题内容: 我正在从xml配置转移到注释。我想转换一个会话范围的bean是 可以通过注释完成此操作吗?如果没有,我该怎么做才能使该声明继续工作? 问题答案: 在spring上下文xml中,执行以下操作: 请注意,尽管如此,你将需要为该包中的所有类编写接口。

  • 问题内容: 我有一个Jersey REST API,并且正在使用来处理授权。我还在所有端点上使用,以便我的API可以处理数千个并发请求。 我的授权过滤器命中了一个远程服务,但是当运行过滤器时,Jersey尚未将当前线程添加到它的内部,因此我完全失去了异步的好处。 我可以告诉Jersey我希望这是异步的吗? 这是一个示例资源: 更新 刚刚收到泽西队球员的回音,从2.7开始,这是不可能的。只有资源方法

  • 我很难理解泽西岛的注入机制。JAX-RS规范(http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-520005)指出,在应用程序子类、根资源类和提供程序中可以通过@Context进行注入。 我现在有一个在启动时实例化的类,并且有一个在每次请求时调用的方法。在方法内部,我需要访问当前的UriInfo对象。问题是,这个方法不是从我的

  • 我正在泽西岛2中编写一个RESTful网络服务。我想支持响应的 Gzip 编码。按照这个答案,我在我的类中启用了。 在我的资源类中,我返回一个对象。 现在,当我点击这个api时,我得到一个响应,但响应头不包含头,而是包含 header。 请求: 响应: 响应中没有 标头,也没有任何标头。 我在上使用。 我还遗漏了其他配置吗?我如何获得这两个头并得到gzip压缩的响应,而不是接收分块的响应? 编辑:

  • 问题内容: 我在Spring启动项目中有一个与Jackson配置有关的问题 如Spring Boot博客中所述 我尝试自定义对象序列化。 在我的配置中添加新的配置bean之后 当我尝试输出类User的实例时,json结果不在CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES中 json输出是: 并不是 也许我需要在Jersey配置中注册一些东西才能激活我的自定义ob