В настоящее время я разрабатываю библиотеку для библиотек RESTful для bitbucket. Я достиг хорошего прогресса, и теперь я займусь секцией Updating an Issue, которая требует запроса HTTP PUT.Java HttpURLConnection: вычисление длины содержимого
Теперь я застрял из-за кода ошибки HTTP 411 Length Required
. После немного прибегая к помощи, я нашел следующее code example:
// CORRECT: get a UTF-8 encoded byte array from the response
// String and set the content-length to the length of the
// resulting byte array.
String response = [insert XML with UTF-8 characters here];
byte[] responseBytes;
try {
responseBytes = response.getBytes("UTF-8");
}
catch (UnsupportedEncodingException e) {
System.err.print("My computer hates UTF-8");
}
this.contentLength_ = responseBytes.length;
Теперь мой вопрос: Что именно измеряется?
- строка запроса
- в urlencoded строку запроса
- только значения параметров ... ??
И есть connection.setRequestProperty("Content-Length", String.valueOf(<mycomputedInt>));
appriopate способ установки атрибута длины контента?
Примеры оценены. Заранее спасибо.
редактировать:
Например, вы могли бы объяснить вычисление с помощью следующего примера завитка от входа Bitbucket вики:
curl -X PUT -d "content=Updated%20Content" \
https://api.bitbucket.org/1.0/repositories/sarahmaddox/sarahmaddox/issues/1/
Пожалуйста, не используйте метод getBytes без указания кодировки. –
Я все еще застрял, но я думаю, что это скорее зависит от bitbucket api, чем от того, как я делаю запросы. – phineas