java - 如何在 java 中使用 bitbucket API 和 singpost 创建问题

标签 java signpost

我正在尝试在 bibucket 上创建新问题,但我不知道如何使用 http。我尝试了很多东西,但它仍然不起作用。这是我的尝试之一:

URL url = new URL("https://api.bitbucket.org/1.0/repositories/" 
        + accountname + "/" + repo_slug + "/issues/"
        + "?title=test&content=testtest");

HttpsURLConnection request = (HttpsURLConnection) url.openConnection();       
request.setRequestMethod("POST");
consumer.sign(request);
request.connect();

我对 GET 请求没有问题。但是在这里我不知道如何发送参数和签署消息。

这里是API文档 https://confluence.atlassian.com/display/BITBUCKET/issues+Resource#issuesResource-POSTanewissue

如何正确地做到这一点?

最佳答案

最后我明白了这一点。参数不是 URL 的一部分,但如果您使用流,则无法对其进行签名。

解决方案是使用 Apache HttpComponents 库并添加如下代码中的参数:

    DefaultHttpClient httpclient = new DefaultHttpClient();
    HttpPost httpPost = new HttpPost("https://api.bitbucket.org/1.0/repositories/"
            + accountname + "/" + repo_slug + "/issues/");
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("title", "test"));
    nvps.add(new BasicNameValuePair("content", "testtest"));
    httpPost.setEntity(new UrlEncodedFormEntity(nvps));
    consumer.sign(httpPost); 
    HttpResponse response2 = httpclient.execute(httpPost);

    try {
        System.out.println(response2.getStatusLine());
        HttpEntity entity2 = response2.getEntity();
        // do something useful with the response body
        // and ensure it is fully consumed
        EntityUtils.consume(entity2);
    } finally {
        httpPost.releaseConnection();
    }

}

但是你必须使用commonshttp专用路标库中的CommonsHttpOAuthConsumer。

关于java - 如何在 java 中使用 bitbucket API 和 singpost 创建问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14582350/

相关文章:

android - Android 上的 Yahoo OAuth - 401 错误

android - OAuth、Twitter 和 Android : fails in http-communication with the server 问题

c# - RSA .NET 加密 Java 解密

java - 如何知道显式锁是否已成功提供内存可见性?

JavaMail - 阅读 Outlook 邮件时出现 AuthenticationFailedException

java - 使用 Evernote 进行 OAuth 身份验证(使用 Java+Signpost)

google-app-engine - jTwitter、oAuth 和 Google App Engine。没有发现类定义错误

java - 打印用户定义大小的菱形的下半部分

java - startActivityForResult 参数中没有 GALLERY_PICK 选项

java - 使用 Google Apps Engine 端点的 OAuth 登录停止工作