问题描述
我试图用SparkJava编写一个简单的服务器,但是我在使用Gson进行长时间序列化并将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。