全球主机交流论坛

标题: 一个python里post和get的问题请教大家,谢谢 [打印本页]

作者: 杯具    时间: 2020-2-5 07:44
标题: 一个python里post和get的问题请教大家,谢谢
directadmin的官方api有这样一段话

special.php
You must provide ?lid=1234 as GET for each request, no matter what.
Even for POST values, the GET ?lid must always be present. These 'special' commands require that your account has access to these functions.

以下是我写的代码:

import requests

uid = "123456"
password = "123456"

def change_license_ip():
    "修改授权ip"
    url = "https://www.directadmin.com/clients/api/special.php?lid=12345&saveip=1&ip="
    ip = input("请输入新的授权ip:")
    r = requests.post(url + ip, auth=(uid, password))  # 用POST方式发送请求并获得响应
    print(r.text)

change_license_ip()

但是da的api返回错误。请教一下php里可以通过_get[变量]来传递,python里应该怎么写?谢谢。
作者: XiaoFaye    时间: 2020-2-5 07:50
依我的理解你上面的做法是对的,另外它返回什么错误?
作者: tem    时间: 2020-2-5 08:51
请用 request
作者: fyang    时间: 2020-2-5 13:41
urllib也行
作者: yjsx86    时间: 2020-2-5 13:46
本帖最后由 yjsx86 于 2020-2-5 13:52 编辑

没用过da
你的意思是把
uid = "123456"
password = "123456"
post 到
"https://www.directadmin.com/clients/api/special.php?lid=12345&saveip=1&ip=" + ip
这个地址是吧

  1. import requests
  2. data = {
  3.     'uid': "123456",
  4.     'password': "123456"
  5. }

  6. def change_license_ip():
  7.     "修改授权ip"
  8.     url = "https://www.directadmin.com/clients/api/special.php?lid=12345&saveip=1&ip="
  9.     ip = input("请输入新的授权ip:")
  10.     r = requests.post(url + ip, data=data)  # 用POST方式发送请求并获得响应
  11.     print(r.text)

  12. change_license_ip()
复制代码


还有 如果数据是payload而不是formdata的话,
data= json.dumps(data)

还有 对于密码这些 大多数网站是用js对密码md5加密后再传输的
你有可能需要对密码加密

这些都可以从浏览器console看得出来
作者: 杯具    时间: 2020-2-5 19:22
yjsx86 发表于 2020-2-5 13:46
没用过da
你的意思是把
uid = "123456"

这是一个HTTP AUTH认证,官方要求lid用get的方式提交,其他元素用post




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4