从另一个调用一个Play框架(1.2.x)URL

时间:2014-02-21 20:14:39

标签: 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", 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。

1 个答案:

答案 0 :(得分:2)

您的路线是如何定义的?

正如您所说,您的浏览器将通过GET发出请求,但在您的代码中,您正在调用WS.post()。如果你的路线期望获得GET,那就是你获得404的原因。