2016-11-16 63 views
3

我試圖打的Liferay註銷的servlet「C /門/註銷」通過Java,但它總是返回400響應:Liferay的註銷返回400響應

private void sendPost() throws Exception { 

    String url = "localhost:8080/c/portal/logout"; 

    HttpClient client = new DefaultHttpClient(); 
    HttpPost post = new HttpPost(url); 

    // add header 
    post.setHeader("User-Agent", USER_AGENT); 
    HttpResponse response = client.execute(post); 
    System.out.println("\nSending 'POST' request to URL : " + url); 
    BufferedReader rd = new BufferedReader(
        new InputStreamReader(response.getEntity().getContent())); 

    StringBuffer result = new StringBuffer(); 
    String line = ""; 
    while ((line = rd.readLine()) != null) { 
     result.append(line); 
    } 

    System.out.println(result.toString()); 

} 
+0

你嘗試「GET」,而不是「POST」? –

+0

嗨,我已經嘗試了GET和POST都沒有好像工作 – ravicandy1234

+0

我已經試過你的代碼稍微修改沒有'USER_AGENT'和'url =「http:// localhost:8080/c/portal/logout」'和' HttpGet'-我收到一個'HTTP/1.1 200 OK'。所以有一些東西在你身邊。你可以添加'response.getStatusLine()'的結果嗎? –

回答

0

假設你的目的是註銷用戶會議期間,最好的方法是調用sendRedirectHttpServletResponse參考

public void myPostAction(ActionRequest request, ActionResponse response) throws Exception { 
    // ... 
    response.sendRedirect("/c/portal/logout"); 
} 
+0

這沒有提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/評論/低質量帖/ 14342741) – Danh

+0

注意到並添加了一個說明 – SleepyTonic

+0

嗨昏昏欲睡:謝謝你的回覆我知道我可以重定向用戶「/ c/portal /註銷」,但這會導致重定向,如果已配置任何現有用戶登錄,調用所有前和後登出掛鉤,我需要以靜默方式註銷重定向。 – ravicandy1234