Я пытаюсь сократить ссылки на bit.do, используя Python или Postman.
В Chrome все отлично работает. Но не с Python / Почтальон. Я получаю страницу, но есть только ошибка, однако запрос от Chrome и запрос, который я пытаюсь сделать, выглядит одинаково.
При использовании Chrome Dev Tools были получены два POST-запроса, оба с именем url-shortener.pl
.
Вот эти запросы (ТАК заставил меня не использовать ссылки с сокращителями URL, поэтому мне пришлось их избегать.):
General:
Request URL: https://bit\.do/mod_perl/url-shortener.pl
Request Method: POST
Status Code: 200
Remote Address: 54.83.52.76:443
Referrer Policy: no-referrer-when-downgrade
Response Headers:
content-type: application/json
date: Sat, 20 Apr 2019 20:12:06 GMT
server: nginx/1.14.1
status: 200
Request Headers:
:authority: bit\.do
:method: POST
:path: /mod_perl/url-shortener.pl
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9,ru-RU;q=0.8,ru;q=0.7
content-length: 112
content-type: application/x-www-form-urlencoded; charset=UTF-8
cookie: permasession=1554914974|phkaoymp1b; __utmc=60667454; __utma=60667454.372171702.1554914974.1555785612.1555789898.5; __utmz=60667454.1555789898.5.4.utmcsr=dynomapper.com|utmccn=(referral)|utmcmd=referral|utmcct=/blog/21-sitemaps-and-seo/495-top-14-url-shorteners; __utmt=1; __utmb=60667454.3.10.1555789898
origin: https://bit\.do
referer: https://bit\.do/
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36
x-requested-with: XMLHttpRequest
Form Data:
action: shorten
url: google.com
url2: site2
url_hash:
url_stats_is_private: 0
permasession: 1554914974|phkaoymp1b
General:
Request URL: https://bit\.do/mod_perl/url-shortener.pl
Request Method: POST
Status Code: 200
Response Headers:
Remote Address: 54.83.52.76:443
Referrer Policy: no-referrer-when-downgrade
content-type: application/json
date: Sat, 20 Apr 2019 20:12:06 GMT
server: nginx/1.14.1
status: 200
Request Headers:
:authority: bit\.do
:method: POST
:path: /mod_perl/url-shortener.pl
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9,ru-RU;q=0.8,ru;q=0.7
content-length: 32
content-type: application/x-www-form-urlencoded; charset=UTF-8
cookie: permasession=1554914974|phkaoymp1b; __utmc=60667454; __utma=60667454.372171702.1554914974.1555785612.1555789898.5; __utmz=60667454.1555789898.5.4.utmcsr=dynomapper.com|utmccn=(referral)|utmcmd=referral|utmcct=/blog/21-sitemaps-and-seo/495-top-14-url-shorteners; __utmt=1; __utmb=60667454.3.10.1555789898
origin: https://bit\.do
referer: https://bit\.do/
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36
x-requested-with: XMLHttpRequest
Form Data:
action: get_title
url_id: 49444432
Сначала я попробовал с Почтальоном. Params:
Заголовки:
Предварительный просмотр ответа:
В результате: ОШИБКА: Неверный URL. Пожалуйста, введите действительный адрес URL.
Затем я переключился на Python и попробовал с запросами.
def bitdo():
headers = {
'accept': '*/*',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'en-US,en;q=0.9,ru-RU;q=0.8,ru;q=0.7',
'content-length': '112',
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
'cookie': 'permasession=1554914974|phkaoymp1b; __utmc=60667454; __utma=60667454.372171702.1554914974.1555785612.1555789898.5; __utmz=60667454.1555789898.5.4.utmcsr=dynomapper.com|utmccn=(referral)|utmcmd=referral|utmcct=/blog/21-sitemaps-and-seo/495-top-14-url-shorteners; __utmt=1; __utmb=60667454.3.10.1555789898',
'origin': 'https://bit\.do',
'referer': 'https://bit\.do/',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
}
params = {
'action': 'shorten',
'url': 'ya.ru',
'url2': 'site2',
'url_hash': '',
'url_stats_is_private': 0,
'permasessions': '1554914974|phkaoymp1b'
}
r = requests.post('https://bit\.do/mod_perl/url-shortener.pl', params, headers=headers)
print(r.text)
И ответ был:
Warning
<!-- head.thtml -->
a { color: #338; text-decoration: none; }
html {
height: 100%;
}
body {
font-family: Arial;
margin: 0;
height: 100%;
color: #404040;
}
.url {
background-color: #f9f9f9;
width: 100%;
height: 16px;
border: 1px solid #654;
padding: 3px;
}
.round {
background-color: white;
border: 1px solid #bbb;
margin-bottom: 10px;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
width: 100%;
max-width: 840px;
}
.input-placeholder {
position: absolute;
font-style: italic;
color: #aaa;
margin: 0.3em 0 0 0.5em;
}
.orange_logo {
color: #fab035;
}
.orange_text {
color: #D04000;
}
.orange_dot {
color: #ff8800;
margin-left: 10px;
}
.table-striped > tbody > tr:nth-child(odd) {
background-color: #efefef;
}
.table1 {
border-spacing: 0;
border-collapse: collapse;
}
.table1 th {
text-align: center;
}
.table1 td, .table1 th {
border: 1px solid #a0a0a0;
padding: 5px;
}
.bitbox {
width: 100%;
}
/* first td should have minimal width */
.bitbox td:first-child {
width: 12px;
padding-right: 12px;
white-space: nowrap;
}
-->
bit.do - URL Shortener
-->
Login to manage your links
-->
<! - / таблица все ->
Подписывайтесь на нас в Твиттере: @ bitdo & nbsp;
<! - / foot ->
<! - / высота 100% ->
<! - ТОДО: УЖЕ ЗАГРУЖЕН? ->
var _gaq = _gaq || [];
_gaq.push (['_setAccount', 'UA-756399-13']);
_gaq.push ([ '_ trackPageview']);
(function () {
var ga = document.createElement ('script'); ga.type = 'text / javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol? 'https://ssl':' http://www') + '.google-analytics.com / ga.js';
var s = document.getElementsByTagName ('script') [0]; s.parentNode.insertBefore (ga, s);
}) ();
<! - КОНЕЦ erro.thtml ->
ОШИБКА site2: Невозможно создать короткую ссылку. Свяжитесь с нами для использования API.
Я ожидаю получить сокращенные ссылки внутри ответа HTML. Может кто-нибудь объяснить мне, что не так с запросами, которые я сделал?