java - Zimbra:使用 HttpClient 将联系人下载为 CSV 文件

标签 java apache-commons-httpclient zimbra

我正在尝试使用以下代码从 Zimbra 下载联系人:

public static void getHTTPFile() {

    HttpClient client = new HttpClient();

    List<String> authPrefs = new ArrayList<String>(2);
    authPrefs.add(AuthPolicy.DIGEST);
    authPrefs.add(AuthPolicy.BASIC);
    client.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs);

    client.getState().setCredentials(
    new AuthScope(HOST, new Integer(PORT).intValue(), AuthScope.ANY_REALM),
    new UsernamePasswordCredentials(NAME, PASSWORD)
    );

    GetMethod get = new GetMethod("http://"+HOST+":"+PORT+"/home/"+USER+"/contacts?fmt=csv");
    get.setDoAuthentication(true);

    try {
        int status = client.executeMethod(get);

        System.out.println(status + "\n" + get.getResponseBodyAsString());
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        get.releaseConnection();
    }
}

但是我收到错误 404(未找到):

13 juin 2012 08:40:47 org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme
INFO: Basic authentication scheme selected
404
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 404 no such item</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /service/home/USER/contacts. Reason:
<pre>    no such item</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/> 

我的网址有误吗?关于documentation看来不是。

认证有问题吗?我没有收到错误 401(未经授权)。

有什么想法吗?

感谢您的帮助。

编辑:

Zimbra 在服务器端有限制吗?例如,我们只能通过网络浏览器或智能手机访问它。

最佳答案

我对 Zimbra 没有任何了解,但它似乎在您的 URL 中 "http://"+HOST+":"+PORT+"/home/"+USER+"/contacts?fmt=csv" USER var 应该替换为真实的用户名,例如 bob。但在 404 响应中,您请求的 url 是:/service/home/USER/contacts。在我看来,您想请求用户 USER 的联系信息,但没有使用此名称的用户。是吗?

关于java - Zimbra:使用 HttpClient 将联系人下载为 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11009581/

相关文章:

java - 使用 JavaFX 打开多个窗口

java - Java中字符串相等性比较失败

java - 控制台中显示奇怪的输出,尝试通过站点中的 java 登录

java - XML 解析错误

linux - Ubuntu 升级,Perl 版本损坏 ZImbra

java - JOptionPane.showOptionDialog 返回错误值?

java - 从 PostgreSQL 函数获取数据到 java

java - 读取从 HttpResponse 返回的正文在 java 中不稳定?

android - 在 Android 上使用 EWS Java API 的问题

python - 在 Python 中使用 Zimbra SOAP API