首页 > 解决方案 > 如何在 Python 中使用多个对象发布请求

问题描述

我可以将 post 方法与除此之外的任何 url 一起使用,当我使用邮递员发送相同的请求(相同的正文、密钥等)时,请求工作得非常好!但是当我使用 python 时(带有请求库)它根本行不通,我使用了以下代码:

import requests
import json
url = "https://app.funildevendas.com.br/api/opportunity?&IntegrationKey=(cant give it up, but it's defintely right)"
payload =  {
     "oportunidades": [

     {
     "titulo": "TestePython",
     "valor": 10440,
     "codigo_vendedor": 38171,
     "codigo_metodologia": 1,
     "codigo_etapa": 2,
     "codigo_canal_venda":69400,

     "empresa": {
     "nome": "Python",
     "cnpj": "",
     "ie": "",
     "segmento": "",
     "endereco_completo": {
     "logradouro": "",
     "numero": "",
     "complemento": "",
     "bairro": "",
     "cidade": "",
     "uf": "",
     "cep": ""
     }

     },
     "contato": {
     "nome": "Nome do contato",
     "email": "email@contato.com.br",
     "telefone1": "",
     "telefone2": "",
     "cargo": "",
     "cpf": ""
     }

     }
     ]
    }
res = requests.post(url,data=json.dumps(payload))
 

我确实得到了响应 [200],但它似乎无法识别身体结构。我得到的回应是:

{"response":"failure","message":"Cannot perform runtime binding on a null reference","value":null} 

我想知道这是否是因为“oportunidades”之前的“[”但将其更改为“{”会导致语法错误。我的集成密钥绝对正确,我的身体(有效负载)也是如此,因为两者都可以使用邮递员正常工作

标签: pythonposthttpspython-requests

解决方案


尝试更改data=json.dumps(payload)json=payload

import requests
import json
url = "https://app.funildevendas.com.br/api/opportunity?&IntegrationKey=(cant give it up, but it's defintely right)"
payload =  {
     "oportunidades": [

     {
     "titulo": "TestePython",
     "valor": 10440,
     "codigo_vendedor": 38171,
     "codigo_metodologia": 1,
     "codigo_etapa": 2,
     "codigo_canal_venda":69400,

     "empresa": {
     "nome": "Python",
     "cnpj": "",
     "ie": "",
     "segmento": "",
     "endereco_completo": {
     "logradouro": "",
     "numero": "",
     "complemento": "",
     "bairro": "",
     "cidade": "",
     "uf": "",
     "cep": ""
     }

     },
     "contato": {
     "nome": "Nome do contato",
     "email": "email@contato.com.br",
     "telefone1": "",
     "telefone2": "",
     "cargo": "",
     "cpf": ""
     }

     }
     ]
    }
res = requests.post(url,json=payload)

推荐阅读