echochio 2019-11-09 08:36 采纳率: 0%
浏览 626

python 小白 : 关于 curl 转换成 requests 求助

原厂给的代码 :

 #!/bin/bash
username="example_username"
apiKey="example_apiKey"
date=`env LANG="en_US.UTF-8" date -u "+%a, %d %b %Y %H:%M:%S GMT"`
password=`echo -en "$date" | openssl dgst -sha1 -hmac $apiKey -binary | openssl enc -base64`
curl -i --url "https://open.chinanetcenter.com/api/report/domainflow?datefrom=2017-11-07T00:00:00%2B08:00&dateto=2017-11-07T00:15:00%2B08:00&type=fiveminutes" \
-X "POST" \
-u "$username:$password" \
-H "Date: $date" \
-H "Accept: application/json" \
-d '<?xml version="1.0" encoding="utf-8"?>
<domain-list>
  <domain-name>www.example1.com</domain-name>
</domain-list>
'

试着改成 python 一直改不出来 一直出现

<Response [400]>

我改成 python 应该有错吧 .

import requests
import datetime
import hmac
import hashlib
import base64
username = "example_username"
apiKey= 'example_apiKey'
now = datetime.datetime.now()
nowTime = now.strftime('%a, %d %b %Y %H:%M:%S GMT')
nowTime_bytes = bytes(nowTime, encoding='utf-8')
value = hmac.new(apiKey, nowTime_bytes, hashlib.sha1).digest()
token = base64.b64encode(value).rstrip()
headers = {"Accept": "application/json",
           "Date": nowTime}
url = 'https://open.chinanetcenter.com/api/report/domainflow'
payload= {'datefrom':'2017-11-07T00:00:00%2B08:00',
          'dateto':'2017-11-07T00:15:00%2B08:00',
          'type': 'fiveminutes'}
xml = '<?xml version="1.0" encoding="utf-8"?>
 <domain-list>
   <domain-name>www.example1.com</domain-name>
 </domain-list>
 '

r = requests.post(url, headers=headers, auth=(username, token), data=xml,params=payload)
print (r)
  • 写回答

1条回答 默认 最新

  • dabocaiqq 2019-11-09 13:13
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器