在请求模块中传递字符串参数的Python脚本失败(Curl命令)

2024-10-16 17:27:45 发布

您现在位置:Python中文网/ 问答频道 /正文

示例Curl命令:
curl“https://www.test.org:8088/services/collector/raw”-kH”Authorization:Splunk 999”-d'{“index”:“abc”,“sourcetype”:“dev”,“userName”:“user1”,“lastActiveDate”:1236472051.807}”

问题:
1.当给出data=teststring(手动输入值)时,它工作正常。
2.但当给出data=completeInfo和syntax时,它无法发送数据

Python程序:

import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

import calendar, time
from datetime import datetime

import re
import json

def convert_utc_to_epoch(lastActiveDate):
    timestamp = datetime.strptime(lastActiveDate, "%Y-%m-%dT%H:%M:%S.000+0000")
    epoch = int(calendar.timegm(timestamp.utctimetuple()))
    return epoch

def getInfo():

    headers = {
    'Authorization': 'adc 12345'
    'Content-Type': 'application/json',
    }

    userName_list , lastActiveDate_list = [] , []

    requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
    response = requests.get('https://somewebsite.org', headers=headers, verify=False)
    Content = response.text

    userName = re.compile(r'.*"userName":"(.*?)"')
    userName_list = (userName.findall(Content)) if userName else ""

    lastActiveDate = re.compile(r'.*"lastActiveDate":"(.*?)"')
    lastActiveDate_list = (lastActiveDate.findall(Content)) if lastActiveDate else ""

    lastActiveDate = convert_utc_to_epoch(lastActiveDate_list[0])
    return userName_list[0],lastActiveDate

def sendDataToSplunk():

    headers = {
    'Authorization': 'Splunk 999',
    }

    RequiredData = getInfo()
    print(RequiredData)

    timeinttostr= str(RequiredData[1])
    completeinfo='"index":"abc","sourcetype":"dev","userName":"'+RequiredData[0]+'","lastActiveDate":'+timeinttostr
    print(completeinfo)
    completeinfowithsyntax="'{"+completeinfo+"}'"
    print(type(completeinfowithsyntax))
    print("completeinfowithsyntax",completeinfowithsyntax)

    teststring='{"index":"abc","sourcetype":"dev","userName":"user1","lastActiveDate":1579010706}'

    response = requests.post('https://www.test.org:8088/services/collector/raw', headers=headers, data=completeinfowithsyntax, verify=False)
    print("done")

sendDataToSplunk()

Tags: httpsorgimportindexusernamecontentrequestslist