昨天从一个Play(1.2.x)控制器我可以在同一系统上从另一个Play应用程序获取JSON,如下所示:
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“路由”HTML。我不明白为什么找不到路线只会以这种方式调用,而不是直接在浏览器中使用get。
答案 0 :(得分:2)
您的路线是如何定义的?
正如您所说,您的浏览器将通过GET发出请求,但在您的代码中,您正在调用WS.post()
。如果你的路线期望获得GET,那就是你获得404的原因。