Взаимодействие с Lotus Connections - PullRequest
0 голосов
/ 08 октября 2010

Мне нужно получить данные с какого-либо сайта подключения к лотосу, например, статус пользователя, с другого сайта.Я пытаюсь установить соединение с лотосом через Java, например,

> server = "https://" + path + param + "&format=full";
> URL profiles_url = new URL(server);
> // Open the URL: throws exception if not found
> HttpURLConnection profiles_conn = HttpURLConnection)profiles_url.openConnection();
> profiles_conn.connect();
> // Process the Atom feed in the response content
> readResponse(profiles_url.openStream(),args[0]);

Но я всегда получаю ответ: HTTP / 1.1 401 Не авторизован. Пожалуйста, дайте мне какие-либо предложения?

Ответы [ 2 ]

1 голос
/ 04 мая 2011

Я решил проблему аутентификации следующим образом:

protected void doView(RenderRequest rRequest, RenderResponse rResponse) throws PortletException, IOException, UnavailableException {
try { 
rResponse.setContentType("text/html");          
        URL url = new URL(
                "https://xxx/activities/service/atom2/todos");
        URLConnection con = url.openConnection();
        con.setConnectTimeout(150000);
        con.setReadTimeout(150000);
        writeCookies(con, rRequest);                        

        DO_SOMETHING (con.getInputStream());
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}       


private String doesLTPATokenCookieExists(RenderRequest request) {
Cookie[] cookie = request.getCookies();
for (int i = 0; i < cookie.length; i++) {
    System.out.println("Cookie Name " + cookie[i].getName());
    if (cookie[i].getName().equals("LtpaToken"))
        return cookie[i].getValue();
}
return null;
}

public URLConnection writeCookies(URLConnection urlConn,
    RenderRequest request) {
String cookieString = "";
cookieString += "LtpaToken" + "=" + doesLTPATokenCookieExists(request) + "; ";
urlConn.setRequestProperty("Cookie", cookieString);     
return urlConn;
}
0 голосов
/ 28 января 2011

Вы не упоминаете, как вы аутентифицируетесь, что очень важно.Как следует из ошибки 401, Connections не считает ваш запрос аутентифицированным.Вам нужен действительный экземпляр Authenticator, но ваш фрагмент кода предполагает, что вы его не используете, верно?

(Кроме того, проект Apache Abdera рекомендуется, когдаработа с Lotus Connections API).

...