Я возился с моей программой, и я использовал модифицированную версию urlread, которая позволяет выполнять BASIC-аутентификацию. Проблема в том, что я должен включить следующую строку кода в базовую функцию urlread:
urlConnection.setRequestProperty('Authorization', 'Basic passphrase');
... где парольная фраза - это закодированная в base64 строка 'user: pass'. Если я поместу фразу-пароль непосредственно в строку в этой строке, программа будет работать нормально, проблема начнется, когда я попытаюсь объединить, чтобы получить эту результирующую строку «Основная фраза-пароль». Изначально у меня было только:
['Basic', ' ', passphrase]
После того, как это не сработало, я немного поэкспериментировал и поэкспериментировал в окне командной строки.
passphrase = 'somerandompassphrase';
teststr1 = ['Basic', ' ', passphrase];
teststr2 = ['Basic', ' ', 'somerandompassphrase'];
teststr3 = 'Basic somerandompassphrase';
strcmp(teststr1, teststr2)
strcmp(teststr1, teststr3)
strcmp(teststr2, teststr3)
Выходное значение равно 1 или true для каждого (как и ожидалось). Однако, если я беру base64encode «somerandompassphrase» (это «c29tZXJhbmRvbXBhc3NwaHJhc2U = '):
encoded = base64encode(passphrase);
teststr1 = ['Basic', ' ', encoded];
teststr2 = ['Basic', ' ', 'c29tZXJhbmRvbXBhc3NwaHJhc2U='];
strcmp(teststr1, teststr2)
Выход равен 0 или false. Разве это не должно быть правдой, хотя? Функцию base64encode можно найти здесь .
Даже из быстрого теста:
strcmp(encoded, 'c29tZXJhbmRvbXBhc3NwaHJhc2U=')
Выход по-прежнему равен 0.
Пожалуйста, помогите, я понятия не имею, что происходит.