ClientSession clientSession = (ClientSession) Connector.open(obexURL);
HeaderSet requestHeaderSet = clientSession.createHeaderSet();
requestHeaderSet.setHeader(HeaderSet.NAME, "...");
requestHeaderSet.setHeader(HeaderSet.TYPE, "...");
HeaderSet responseHeaderSet = clientSession.connect(requestHeaderSet);
if (responseHeaderSet.getResponseCode() != ResponseCodes.OBEX_HTTP_OK) {
throw new BluetoothConnectionException(BluetoothConnectionException.UNACCEPTABLE_PARAMS);
}
Operation operation = clientSession.put(requestHeaderSet);
// open and write to output stream associated with operation
Исходя из приведенного выше кода, кажется, что: 1) Я отправляю заголовки для моего запроса, 2) Я получаю подтверждение, что на мой запрос можно ответить (через код ответа), 3) Я отправляю содержимое моего запроса (записывая в выходной поток после моего комментария).
Мое понимание выше верного? Если так, то почему протокол HTTP (в частности, методы PUT и POST) не реализован таким образом? Вместо ожидания подтверждения перед отправкой содержимого метод PUT или POST отправляет содержимое вместе с заголовками.