作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试在 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/
我正在尝试在 bibucket 上创建新问题,但我不知道如何使用 http。我尝试了很多东西,但它仍然不起作用。这是我的尝试之一: URL url = new URL("https://api.bit
我是一名优秀的程序员,十分优秀!