在没有重定向的情况下向JSF应用程序中的外部站点发送http post请求

时间:2014-11-20 21:24:46

标签: jsf http-post

当用户单击按钮时,我有一个JSF应用程序,必须执行一些操作并指向JSF新页面。相同的操作必须向sms网关发送请求,其中应用程序以静默方式记录在应用程序中,但不得将JSF页面的任何导航更改为用户。我怎样才能实现这个功能?

例如,单击report.xhtml页面中的“保存”按钮必须将用户带到new_report.xhtml页面,但该点击还必须向外部URL发送http请求,如果可能,请记录外部响应。

如果我使用faces context>请求,如this answer中所示,它会重定向到该外部页面。

1 个答案:

答案 0 :(得分:2)

您可以使用URLConnection始终连接到任何其他网站,如下所述:Using java.net.URLConnection to fire and handle HTTP requests。如果您不希望有太多的样板代码,那么您可能希望使用第三方库(如Apache HttpComponents)或其他基于此类的库(如Unirest)。使用unirest,代码非常简单:

String yourUrl = "http://url.you.want.to/connect/";
HttpResponse<String> stringResponse = Unirest.post(yourUrl)
    .field("parameter1", "parameter1Value")
    .field("parameter2", "parameter2Value")
    .asString();
//retrieving the string content of the response
saveResponseFromExternalSite(stringResponse.getBody());

免责声明:我与unirest图书馆根本没有关系。我不是开发人员,也不是供应商,也不是此库的支持者。我只是一个快乐的用户。