Java 从另一个播放框架调用一个播放框架(1.2.x)URL
昨天,通过一个Play(1.2.x)控制器,我能够从同一系统上的另一个Play应用程序获取JSON,如下所示:Java 从另一个播放框架调用一个播放框架(1.2.x)URL,java,json,playframework,routing,playframework-1.x,Java,Json,Playframework,Routing,Playframework 1.x,昨天,通过一个Play(1.2.x)控制器,我能够从同一系统上的另一个Play应用程序获取JSON,如下所示: HttpResponse res = WS.url("http://localhost:9006/preferredRoute/pastThirtyDays") .setParameter("origin333", divergenceStation.station333.trim()) .setParameter("originSt", diverge
HttpResponse res = WS.url("http://localhost:9006/preferredRoute/pastThirtyDays")
.setParameter("origin333", divergenceStation.station333.trim())
.setParameter("originSt", divergenceStation.state)
.setParameter("dest333", convergenceStation.station333.trim())
.setParameter("destSt", convergenceStation.state)
.post();
JsonElement json = res.getJson();
http://localhost:9029/routes/historical/thirtydays?origin333=HOLLIDAY&originSt=KS&dest333=EMPORIA&destSt=KS&excludeStns=TOPEKA,KS
HttpResponse res = WS.url("http://localhost:9029/routes/historical/thirtydays")
.setParameter("origin333", origin333)
.setParameter("originSt", originSt)
.setParameter("dest333", dest333)
.setParameter("destSt", destSt)
.setParameter("viaStations", viaStations)
.setParameter("excludeStns", excludeStns)
.post();
JsonElement json = res.getJson();
同时,我更改了端口、路由和参数名称,但整天都在通过浏览器中的get访问它,如下所示:
HttpResponse res = WS.url("http://localhost:9006/preferredRoute/pastThirtyDays")
.setParameter("origin333", divergenceStation.station333.trim())
.setParameter("originSt", divergenceStation.state)
.setParameter("dest333", convergenceStation.station333.trim())
.setParameter("destSt", convergenceStation.state)
.post();
JsonElement json = res.getJson();
http://localhost:9029/routes/historical/thirtydays?origin333=HOLLIDAY&originSt=KS&dest333=EMPORIA&destSt=KS&excludeStns=TOPEKA,KS
HttpResponse res = WS.url("http://localhost:9029/routes/historical/thirtydays")
.setParameter("origin333", origin333)
.setParameter("originSt", originSt)
.setParameter("dest333", dest333)
.setParameter("destSt", destSt)
.setParameter("viaStations", viaStations)
.setParameter("excludeStns", excludeStns)
.post();
JsonElement json = res.getJson();
(请记住,“路线”对我们来说是一个超载的术语,在商业环境中具有含义)
但是,当我尝试访问类似于昨天的内容时,如下所示:
HttpResponse res = WS.url("http://localhost:9006/preferredRoute/pastThirtyDays")
.setParameter("origin333", divergenceStation.station333.trim())
.setParameter("originSt", divergenceStation.state)
.setParameter("dest333", convergenceStation.station333.trim())
.setParameter("destSt", convergenceStation.state)
.post();
JsonElement json = res.getJson();
http://localhost:9029/routes/historical/thirtydays?origin333=HOLLIDAY&originSt=KS&dest333=EMPORIA&destSt=KS&excludeStns=TOPEKA,KS
HttpResponse res = WS.url("http://localhost:9029/routes/historical/thirtydays")
.setParameter("origin333", origin333)
.setParameter("originSt", originSt)
.setParameter("dest333", dest333)
.setParameter("destSt", destSt)
.setParameter("viaStations", viaStations)
.setParameter("excludeStns", excludeStns)
.post();
JsonElement json = res.getJson();
调用getJson()会导致错误,因为它是404“route not found”HTML。我不明白为什么route not found仅在以这种方式调用时显示,而不是直接使用浏览器中的get。您的路由是如何定义的
正如您所说,您的浏览器将通过GET发出请求,但在您的代码中您正在调用
WS.post()
。如果您的路线需要GET,那么这就是为什么您需要404。您是对的,我的路线需要GET。我将其更改为*并且在测试和确认事情按预期工作后,将接受您的答案