Одно обоснованное предположение: если кодировки платформ различаются (довольно часто; некоторые платформы используют ISO-8859-1, другие UTF-8, Windows может быть CP-1250 или что-то еще, и в рассматриваемой библиотеке OAuth есть ошибки новичка, где кодировка не указанапри преобразовании между byte [] и String, AND есть символы, которые по-разному кодируются в разных кодировках (обычно все, кроме 7-битного диапазона ASCII, символы 0–127), и в результате вы получите разные подписи.
Итак, вы можете увидеть, что представляет собой кодировка платформы по умолчанию, и сначала заставить ее быть одинаковой для обоих. Если это решит проблему, я бы посчитал сообщить об этом как об ошибке автору OAuth lib (или инфраструктуре, которая его связывает)) или, по крайней мере, спросите в списках рассылки.
Я видел такие ошибки (String.getBytes ("test")) ОЧЕНЬ часто - это один из самых распространенных в мире анти-паттернов Java. Худшая частьв том, что это ошибка, которая вызывает проблемы только при определенных обстоятельствах, поэтому люди не настолько сильно кусаются, чтобы их исправить.
AnothВозможная проблема связана с кодировкой URL - обработка некоторых символов (пробел,%, +) может отличаться в разных реализациях из-за незначительных ошибок в кодировании / декодировании.Таким образом, вы можете видеть, содержит ли передаваемый контент «специальные» символы;попытайтесь выяснить, имеет ли значение их устранение (для тестирования), и ноль в том, что вызывает разницу.