【问题标题】:How to post status update in to ibm connections using abdera?如何使用 abdera 将状态更新发布到 ibm 连接?
【发布时间】:2015-02-13 11:01:59
【问题描述】:

如何使用 abdera 将状态更新发布到 ibm 连接?

我正在尝试使用闲置代码将状态发布到 ibm 连接。

public class PostStatusUpdate {

public void postStatus(String username, String password, String feedURL) throws MalformedURLException, URISyntaxException {
    try{
    Abdera abdera = new Abdera();
    AbderaClient client = new AbderaClient(abdera);
    AbderaClient.registerTrustManager();
    RequestOptions options = client.getDefaultRequestOptions();
    URL url = new URL(feedURL);
    String realm = url.getProtocol() + "://" + url.getHost();
    client.usePreemptiveAuthentication(true);
    try {
        client.addCredentials(realm, null, null, new UsernamePasswordCredentials(username, password));
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }
    Parser parser = abdera.getParser();
    String urlText = "https://greenhouse.lotus.com/connections/opensocial/basic/rest/ublog/@me/@all";
    String message = "Hai This is Tes Content Fron Nithin!";
    Entry status = abdera.newEntry();
    status.addCategory("http://www.ibm.com/xmlns/prod/sn/type", "entry", null);
    status.addCategory("http://www.ibm.com/xmlns/prod/sn/message-type", "status", null);
    message = StringEscapeUtils.escapeHtml4(message);
    status.setContent(message);
    ClientResponse response = client.put(urlText, status);
    if (response.getType() == ResponseType.SUCCESS) {
        System.out.println("I have posted status");
    } else {
        System.out.println("I failed");
    }
    }catch(Exception e){
        System.out.println("Exception E -->"+e);
    }
}

}

请帮忙。

【问题讨论】:

  • 微博只基于json,不基于atom。 www-10.lotus.com/ldd/appdevwiki.nsf/…
  • 但是如何使用这个 API 更新消息?...@PaulBastide
  • 使用前面评论中链接的 REST API
  • 您能否提供一个如何使用 REST API 的示例。我提到的上述代码是否需要他们进行任何修改
  • 老兄,这里有一个例子:IBM Connections wiki。 PS:示例使用 XML,而不是 json。关键是——正如 Paul Bastide 所说——你需要使用 REST API。

标签: java ibm-connections apache-abdera


【解决方案1】:

我不相信 Abdera 支持 JSON。

您可以从 cURL 中获取示例

 curl --request POST -u "userid:password" -H "Content-Type: application/json" -d "{\"content\": \"A new microblog POST\",}" https://<SERVER>/connections/opensocial/basic/rest/ublog/@me/@all

并将其用作您的 java 代码中的模型。

或者以此为模型

设置网址 String apiUrl = "https://<SERVER>/connections/opensocial/rest/ublog/@me/@all";

构建 HTTP 连接、请求和处理

        url = new URL(apiUrl);
        HttpsURLConnection httpCon = (HttpsURLConnection) url
                .openConnection();
        httpCon.setDoOutput(true);


        // Create via POST
        String METHOD = "POST";
        httpCon.setRequestMethod(METHOD);

        String contentType = "application/json";
        String auth = //build Basic auth here

        httpCon.setRequestProperty("User-Agent", "curl/7.37.1");
        httpCon.setRequestProperty("Content-Type", contentType);
        httpCon.setRequestProperty("Authorization", auth);

        String eventJson = "{\"content\":\"test\"}"; //"{\"content\" : \"A new microblog\" }";

        System.out.println("" + eventJson);

        DataOutputStream out = new DataOutputStream(
                httpCon.getOutputStream());
        out.write(eventJson.getBytes());
        out.flush();
        out.close();

        InputStream is = httpCon.getInputStream();

        StringWriter writer = new StringWriter();
        IOUtils.copy(is, writer);
        String response = writer.toString();

        System.out.println(response);

        System.out.println("The Response Code is "
                + httpCon.getResponseCode());

`

【讨论】:

  • 我试图执行上面的代码,但我无法更新状态。代码工作没有任何错误,但状态没有更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
  • 2014-10-30
  • 2010-11-17
  • 2019-03-03
  • 1970-01-01
相关资源
最近更新 更多