gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:53:51 25 4
gpt4 key购买 nike

我正在尝试在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com