2017-06-28 139 views
0

我正在测试Yodlee。我可以通过在Chrome浏览器中发布FORM元素来使FastLink工作。我相信在POST之后会发生某种类型的重定向,它会告诉Chrome浏览器转到另一个URL地址并加载该页面。我想用Java代码执行POST并捕获重定向URL。如何使用Java HTTP请求代码获取Yodlee FastLink URL?

我试着用下面的RestTemplate代码,但请求挂起,连接最终被终止。

MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>(); 
map.add("rsession", getUserAuthToken()); 
map.add("token", fastLinkAccess.getAccessToken()); 
map.add("app", "10003600"); 
map.add("redirectReq", "true"); 

URI uri = template.postForLocation("https://node.developer.yodlee.com/authenticate/restserver/", map, String.class); 

我该怎么办?

回答

0

只有将HTML内容发布到动作(节点)URL才能启动Fastlink。

当你使用的是Java,可以使用下面的示例代码来发布HTML中使用Java的

String formHtmlContent = "<div class='center processText'>Processing...</div>" 
    + "<div>" 
    + "<form action='${NODE_URL}' method='post' id='rsessionPost'>" 
    + " RSession : <input type='text' name='rsession' placeholder='rsession' value='${RSESSION}' id='rsession'/><br/>" 
    + " FinappId : <input type='text' name='app' placeholder='FinappId' value='${FINAPP_ID}' id='finappId'/><br/>" 
    + " Redirect : <input type='text' name='redirectReq' placeholder='true/false' value='true'/><br/>" 
    + " Token : <input type='text' name='token' placeholder='token' value='${TOKEN}' id='token'/><br/>" 
    + " Extra Params : <input type='text' name='extraParams' placeholder='Extra Params' value='${EXTRA_PARAMS}' id='extraParams'/><br/>" 
    + "</form></div><script>document.getElementById('rsessionPost').submit();</script>";