Я хочу разработать java-библиотеку для доступа к API-интерфейсу для проблем с разрядностью.
Я уже задавал вопрос о вычислении заголовка HTTP Content-Length , но этот вопрос конкретно о API Bitbucket и процесс обновления проблемы (поскольку каждый другой запрос работает хорошо).
Следующий код не работает, выдавая ошибку 411 Length Required
.
Но дажеболее запутанно: в документации вам предлагается использовать PUT
метод запроса.Если вы «забыли» указать это, код состояния изменится на 200 OK
, но проблема останется неизменной.
public class PutTest {
public static void main(String[] args) throws Exception {
URL u = new URL("https://api.bitbucket.org/1.0/repositories/myname/myproject/issues/1/?title=hello+world");
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.addRequestProperty("Authorization", "Basic "+Base64.encodeToString("user:password".getBytes(), false));
c.addRequestProperty("Content-Length", String.valueOf(u.getQuery().getBytes("UTF-8").length));
c.setRequestMethod("PUT");
c.connect();
System.out.println(c.getResponseCode()+" "+c.getResponseMessage());
}
}