找回密码
 立即注册
CeraNetworksBGVM服务器主机交流会员请立即修改密码Sharktech防护
查看: 37|回复: 5

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

[复制链接]

19

主题

288

回帖

1023

积分

金牌会员

积分
1023
发表于 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里应该怎么写?谢谢。
回复

使用道具 举报

48

主题

457

回帖

1884

积分

金牌会员

积分
1884
发表于 2020-2-5 07:50:40 | 显示全部楼层
依我的理解你上面的做法是对的,另外它返回什么错误?
回复

使用道具 举报

1

主题

374

回帖

963

积分

高级会员

积分
963
发表于 2020-2-5 08:51:29 | 显示全部楼层
请用 request
回复

使用道具 举报

3

主题

20

回帖

69

积分

注册会员

积分
69
发表于 2020-2-5 13:41:00 | 显示全部楼层
urllib也行
回复

使用道具 举报

124

主题

279

回帖

1850

积分

金牌会员

积分
1850
发表于 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
这个地址是吧

[ol]
  • import requests
  • data = {
  •     '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, data=data)  # 用POST方式发送请求并获得响应
  •     print(r.text)
  • change_license_ip()[/ol]复制代码

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

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

    这些都可以从浏览器console看得出来
  • 回复

    使用道具 举报

    19

    主题

    288

    回帖

    1023

    积分

    金牌会员

    积分
    1023
     楼主| 发表于 2020-2-5 19:22:31 | 显示全部楼层

    yjsx86 发表于 2020-2-5 13:46

    没用过da
    你的意思是把
    uid = "123456"

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

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|HS2V主机综合交流论坛

    GMT+8, 2024-11-18 06:31 , Processed in 0.061306 second(s), 4 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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