Я пытаюсь повторить следующую CURL
команды в Python (я пытаюсь сделать POST
запрос с некоторыми данными по конкретному IP):Simulate завиток команда, используя URLLIB в Python - httplib.InvalidURL: нечисленный порт:
curl -k --data "phonenr=a_number&smstxt=Test&Submit=SendSms" https://admin:[email protected]/txsms.cgi
где ip
является IP удаленного сервера и admin:pass
являются учетными данными, необходимыми.
Эта команда CURL выполняется правильно, а ответ - 200
.
С помощью следующего кода Python, я получаю:
httplib.InvalidURL: nonnumeric port: '[email protected]'
Может кто-нибудь сказать мне, что я делаю неправильно?
import urllib2 as urllib
from os.path import join as joinPath
from urllib import urlencode
# constant
APPLICATION_PATH = '/srv/sms_alert/'
ALERT_POINT_PATH = joinPath(APPLICATION_PATH, 'alert_contact')
URL_REQUEST_TIMEOUT = 42
SMS_BOX_URL = 'https://admin:[email protected]/txsms.cgi'
with open(ALERT_POINT_PATH, 'r') as alertContactFile:
for line in alertContactFile:
line = line.strip('\n')
data = {
'phonenr': line,
'smstext': 'Test',
'Submit': 'SendSms'
}
url_data = urlencode(data)
url_data = url_data.encode('UTF-8')
req = urllib.Request(SMS_BOX_URL, url_data)
with urllib.urlopen(req) as response:
print(response.read())
Что я должен писать вместо: «царство», «царство аутентичности»? –
вы должны увидеть это при разборе заголовка запроса сервера, например: '' WWW-Authenticate: Basic realm = "WallyWorld" ''. вы можете попробовать None (без кавычек) – doctori