【发布时间】: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