【问题标题】:SparkJava GET Handler Returning NULL After Serialization of LongSparkJava GET 处理程序在 Long 序列化后返回 NULL
【发布时间】:2020-12-21 02:01:29
【问题描述】:

我正在尝试使用 SparkJava 编写一个简单的服务器,但我在使用 Gson 序列化 long 并将 JSON 传输到 GET 处理程序内的 OkHttp 客户端程序时遇到了相当大的困难。服务器返回NULL,更具体地说response.body.string()是

<html><body><h2>404 Not found</h2></body></html>

关于问题可能是什么的任何想法?谢谢。

这里是 GET 处理程序:

get("routingEngine/getDefaultRoute/distance", (request,response) ->{
    response.type("application/json");
    long distance = 100;
    return gson.toJson(distance);
});

这是发出简单请求的客户端代码(请忽略与请求一起传递的参数(requestParameters),它们只是为无关的前置过滤器提供信息):

    // build url
    HttpUrl url = new HttpUrl.Builder()
    .scheme("http")
    .host("127.0.0.1")
    .port(4567)
    .addPathSegment("routingEngine")
    .addPathSegment("getDefaultRoute")
    .addPathSegment("distance")
    .build();

    // build request
    Request getDefaultRouteDistanceRequest = new Request.Builder()
    .url(url)
    .post(RequestBody.create(JSON,gson.toJson(requestParameters)))
    .build();

    // send request
    Call getDefaultRouteDistanceCall = httpClient.newCall(getDefaultRouteDistanceRequest);
    Response getDefaultRouteDistanceResponse = getDefaultRouteDistanceCall.execute();
    
    // parse response
    // testing
    System.out.println(getDefaultRouteDistanceResponse.body().string());

最后一行导致以下输出

<html><body><h2>404 Not found</h2></body></html>

【问题讨论】:

  • 可能是因为您正在创建一个 get 端点,然后在调用中使用一个 post 请求?
  • 是的,谢谢@Vishal!请随意回答,以便我接受它

标签: java gson okhttp spark-java


【解决方案1】:

您创建的端点是一个 GET 端点,正在调用的是 POST。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多