我想通过wklej API缩短链接,他们在网站上有文档,但只针对php,我不明白问题是什么.以下是他们网站上的一个请求示例:

https://wklej.to/api/url/add

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://wklej.to/api/url/add",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer HERE IS MY API KEY",
        "Content-Type: application/json",
    ),
    CURLOPT_POSTFIELDS => '{
    "url": "https:\/\/google.com",
    "custom": "google",
    "password": "mypass",
    "expiry": "2020-11-11 12:00:00",
    "type": "splash",
    "metatitle": "Not Google",
    "metadescription": "Not Google description",
    "metaimage": "https:\/\/www.mozilla.org\/media\/protocol\/img\/logos\/firefox\/browser\/og.4ad05d4125a5.png",
    "geotarget": [
        {
            "location": "Canada",
            "link": "https:\/\/google.ca"
        },
        {
            "location": "United States",
            "link": "https:\/\/google.us"
        }
    ],
    "devicetarget": [
        {
            "device": "iPhone",
            "link": "https:\/\/google.com"
        },
        {
            "device": "Android",
            "link": "https:\/\/google.com"
        }
    ],
    "languagetarget": [
        {
            "language": "en",
            "link": "https:\/\/google.com"
        },
        {
            "language": "fr",
            "link": "https:\/\/google.ca"
        }
    ],
    "parameters": [
        {
            "name": "aff",
            "value": "3"
        },
        {
            "device": "gtm_source",
            "link": "api"
        }
    ]
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;


我试着提出这样的请求:

r = requests.post("https://wklej.to/api/url/add", data = {"api": "HERE IS MY API KEY", "url": "https://amazon.com"})

但作为回应,我得到了这个结论:

{"error":1,"message":"A valid API key is required to use this service."}

我最近开始学习Python,想知道我做错了什么,如果我理解正确,那么我需要发送一个JSON格式的请求.顺便说一句,他们的文档指出,在请求中,您只需要为缩写程序指定一个链接和一个API密钥,其他所有内容都是可选的.

update

现在我这样做:

headers = {
    'Authorization': 'Bearer MY_API_KEY',
    'Content-Type': 'application/json',
}

data = {"url": "https://amazon.com"}


r = requests.post("https://wklej.to/api/url/add", headers=headers, data=data)

回应是:

{"error":1,"message":"Missing required parameter: url"}

为什么它不见了?我已经在"数据"中设置了这个

推荐答案

试着这样做:

r = requests.post("https://wklej.to/api/url/add", headers=headers, json=data)

data参数将是形式编码的,而json参数将传递的值序列化为json.请参阅文档here.

Python相关问答推荐

如何从. text中进行pip安装跳过无法访问的库

从收件箱获取特定列中的重复行

脚注在Python中使用regex导致错误匹配

是否有方法将现有的X-Y图转换为X-Y-Y1图(以重新填充)?

Docker-compose:为不同项目创建相同的容器

如何编写一个正规表达式来查找序列中具有2个或更多相同辅音的所有单词

"如果发生特定错误,返回值

如何让pyparparsing匹配1天或2天,但1天和2天失败?

强制venv在bin而不是收件箱文件夹中创建虚拟环境

opencv Python稳定的图标识别

使文本输入中的文本与标签中的文本相同

如何使用stride_tricks.as_strided逆转NumPy数组

有什么方法可以避免使用许多if陈述

如何计算列表列行之间的公共元素

在Pandas 日历中插入一行

如何使用Google Gemini API为单个提示生成多个响应?

Mistral模型为不同的输入文本生成相同的嵌入

NP.round解算数据后NP.unique

如何使Matplotlib标题以图形为中心,而图例框则以图形为中心

为什么if2/if3会提供两种不同的输出?