设为首页收藏本站

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 50|回复: 5

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

[复制链接]

111

主题

2430

回帖

5365

积分

论坛元老

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

使用道具 举报

55

主题

565

回帖

1421

积分

金牌会员

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

使用道具 举报

9

主题

1013

回帖

2155

积分

金牌会员

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

使用道具 举报

8

主题

230

回帖

546

积分

高级会员

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

使用道具 举报

221

主题

1267

回帖

3347

积分

论坛元老

积分
3347
发表于 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看得出来
  • 回复

    使用道具 举报

    111

    主题

    2430

    回帖

    5365

    积分

    论坛元老

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

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

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

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

    使用道具 举报

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

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2026-3-24 16:58 , Processed in 0.012829 second(s), 3 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

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