Вы получаете код ответа HTTP 301, постоянно перемещенный . Когда вы смотрите поближе, вы видите, что он указывает на https://www.uniprot.org:443/uploadlists/
для нового местоположения; это то, что обычно происходит, когда ресурс, который раньше был доступен через HTTP, теперь доступен только через HTTPS. Это не имеет ничего общего с использованием нового компьютера; просто случайно это произошло примерно в одно и то же время.
Если вы измените URL на HTTPS, он должен работать так, как вы ожидаете. Тем не менее, я никогда не рекомендую использовать Net::HTTP
напрямую, потому что это неуклюже. Посмотрите на , как неловко просто установить соединение, используя HTTPS! Головная боль не стоит.
Я предпочитаю использовать HTTParty , потому что он прост и удобен, а также очень популярен в сообществе Ruby. Вот пример того, как выполнить вашу задачу с помощью HTTParty в меньшем количестве строк кода:
require 'httparty'
params = {
'from' => 'ACC', 'to' => 'P_REFSEQ_AC', 'format' => 'tab',
'query' => 'P13368 P20806 Q9UM73 P97793 Q17192'
}
response = HTTParty.post(
'https://www.uniprot.org:443/uploadlists/',
{
body: params.keys.map { |key| key + '=' + params[key] }.join('&'),
headers: { 'Content-Type' => 'application/x-www-form-urlencoded' }
}
)
Затем вы можете проверить тело ответа:
puts response.body
From To
P13368 NP_511114.2
Q9UM73 NP_004295.2
P97793 NP_031465.2
Q17192 XP_004934106.1
Кроме того, по трассировке стека я могу сказать, что вы опубликовали, что вы используете системную версию Ruby, поставляемую с macOS. Мой совет: Не Используйте Система Ruby .
Вместо этого вы должны установить менеджер Ruby, например RVM :
- Установить RVM с
\curl -sSL https://get.rvm.io | bash -s stable
- Перезагрузите свою оболочку
- Установить Ruby с помощью
rvm install 2.5.3
- Переустановите ваши драгоценные камни (
gem install httparty
)
Затем вы можете перезапустить приложение.