全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1307|回复: 5

一个python里post和get的问题请教大家,谢谢

[复制链接]
发表于 2020-2-5 07:44:17 | 显示全部楼层 |阅读模式
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里应该怎么写?谢谢。
发表于 2020-2-5 07:50:40 | 显示全部楼层
依我的理解你上面的做法是对的,另外它返回什么错误?
发表于 2020-2-5 08:51:29 来自手机 | 显示全部楼层
请用 request
发表于 2020-2-5 13:41:00 | 显示全部楼层
urllib也行
发表于 2020-2-5 13:46:49 | 显示全部楼层
本帖最后由 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:31 | 显示全部楼层
yjsx86 发表于 2020-2-5 13:46
没用过da
你的意思是把
uid = "123456"

这是一个HTTP AUTH认证,官方要求lid用get的方式提交,其他元素用post
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-22 15:57 , Processed in 0.074985 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表