Post to API在Postman上可以工作,但生成的Python代码却不能。

问题描述 投票:0回答:1

下面的代码是邮递员在一次成功的发帖中生成的,但是,当我试图在Python上运行它时,得到了响应[409],它说只接受PDF或JPEG文件,尽管我提交的文件是PDF。然而,当我试图在Python上运行它时,我得到了响应[409],它说只有PDF或JPEG文件被接受,即使我提交的文件是一个PDF。希望有人能帮我解决这个问题。已经找了几天了,但是没办法。我不能把头文件拿掉,因为网站要求认证。我是成功获得token和session的。

payload = {'integracaoDocumento.nomeVitima': 'Outroteste da Costa',
           'integracaoDocumento.rgVitima': '1234',
           'integracaoDocumento.uploadDocumentoList[0].descricao': 'BO 1234',
           'integracaoDocumento.uploadDocumentoList[0].idTipoDocumento': '1',
           'integracaoDocumento.uploadDocumentoList[0].identificador': 'BO 1234',
           'dadosRegistro.dataRegistroDelegacia': '11/09/2016',
           'dadosRegistro.idDelegaciaRegistro': '141',
           'dadosRegistro.idDelegaciaApuracao': '227',
           'dadosFato.data': '10/12/2015',
           'dadosFato.periodo': 'T',
           'dadosFato.idMunicipio': '5508',
           'dadosFato.descricao': 'Descricao Fato Desaparecido',
           'dadosFato.idTipoLogradouro': '1',
           'dadosFato.logradouro': 'Rua de teste',
           'dadosFato.numero': '777',
           'dadosFato.complemento': 'Apt 123456',
           'dadosFato.cep': '21351110',
           'dadosFato.pontoReferencia': 'Perto do bar.',
           'vitima.dadosBiograficos.cnh': '123123123',
           'vitima.dadosBiograficos.nomeMae': 'Nome da Mae de Vitima Desaparecimento Instaurado 1',
           'vitima.dadosBiograficos.nomePai': 'Nome do Pai de Vitima Desaparecimento Instaurado 1',
           'vitima.dadosBiograficos.cpf': '94151587004',
           'vitima.dadosBiograficos.orgaoEmissorRg': 'DETRAN',
           'vitima.dadosBiograficos.tituloEleitor': '1234567890',
           'vitima.dadosBiograficos.ctps': '333222111',
           'vitima.dadosBiograficos.dataNascimento': '17/03/1959',
           'vitima.dadosBiograficos.idEstadoCivil': '1',
           'vitima.dadosBiograficos.passaporte': 'FT44225577',
           'vitima.dadosBiograficos.sexo': 'F',
           'vitima.dadosBiograficos.nacionalidade': 'B',
           'vitima.dadosBiograficos.idNaturalidade': '33',
           'vitima.caracteristicasFisicas.idAltura': '3',
           'vitima.caracteristicasFisicas.idTipoSanguineo': '2',
           'vitima.caracteristicasFisicas.idBiotipo': '1',
           'vitima.caracteristicasFisicas.idCorOlhos': '1',
           'vitima.caracteristicasFisicas.idCorPele': '2',
           'vitima.caracteristicasFisicas.idTipoCabelo': '1',
           'vitima.caracteristicasFisicas.idCorCabelo': '1',
           'vitima.caracteristicasFisicas.amputacoes[0]': '1',
           'vitima.caracteristicasFisicas.amputacoes[1]': '4',
           'vitima.caracteristicasFisicas.deformacoes[0]': '1',
           'vitima.caracteristicasFisicas.deficiencias[0]': '1',
           'vitima.caracteristicasFisicas.deficiencias[1]': '2',
           'vitima.caracteristicasFisicas.deficiencias[2]': '3',
           'vitima.caracteristicasFisicas.caracteristicasIndividualizantes[0].idCaracteristicaIndividualizante': '1',
           'vitima.caracteristicasFisicas.caracteristicasIndividualizantes[0].idParteCorpo': '2',
           'vitima.caracteristicasFisicas.caracteristicasIndividualizantes[0].descricao': 'Descricao caracteristica individualizante.',
           'vitima.caracteristicasFisicas.artigoPessoais[0].idArtigoPessoal': '1',
           'vitima.caracteristicasFisicas.artigoPessoais[0].idParteCorpo': '5',
           'vitima.enderecos[0].idUf': '53',
           'vitima.enderecos[0].idMunicipio': '5508',
           'vitima.enderecos[0].idTipoLogradouro': '3',
           'vitima.enderecos[0].logradouro': 'Rua de teste da Vitima Desaparecimento Instaurado 1',
           'vitima.enderecos[0].numero': '111',
           'vitima.enderecos[0].complemento': 'Casa 99',
           'vitima.enderecos[0].cep': '22735080',
           'vitima.enderecos[0].pontoReferencia': 'Perto da padaria.',
           'vitima.contatos[0].idTipoContato': '1',
           'vitima.contatos[0].descricaoContato': '[email protected]',
           'vitima.contatos[1].idTipoContato': '2',
           'vitima.contatos[1].descricaoContato': 'Contato teste 1',
           'interessados[0].nome': 'Interessado teste 1',
           'interessados[0].cpf': '62784035018',
           'interessados[0].rg': '223566578',
           'interessados[0].orgaoEmissor': 'IFP',
           'interessados[0].nomePai': 'Pai interessado teste 1',
           'interessados[0].nomeMae': 'Mae Interessado teste 1',
           'interessados[0].idRelacaoVitima': '1',
           'interessados[0].meiosComunicacoes[0].idTipoMeioComunicao': '1',
           'interessados[0].meiosComunicacoes[0].descricao': 'Meio de comunicacao teste 1',
           'interessados[0].meiosComunicacoes[1].idTipoMeioComunicao': '2',
           'interessados[0].meiosComunicacoes[1].descricao': '[email protected]',
           'interessados[1].nome': 'Interessado teste 2',
           'interessados[1].cpf': '14970635072',
           'interessados[1].rg': '1121346579',
           'interessados[1].orgaoEmissor': 'DETRAN',
           'interessados[1].nomePai': 'Pai interessado teste 1-1',
           'interessados[1].nomeMae': 'Mae Interessado teste 1-1',
           'interessados[1].idRelacaoVitima': '2',
           'interessados[1].meiosComunicacoes[0].idTipoMeioComunicao': '2',
           'interessados[1].meiosComunicacoes[0].descricao': '[email protected]'}
headers = {
           'Authorization': 'Bearer ' + token,
           'Cookie': 'JSESSIONID=' + session,
           }
files = [('integracaoDocumento.uploadDocumentoList[0].arquivo',open(r'PATH_TO_FILE\FILE.pdf','rb'))]
response = requests.request("POST", url, headers = headers, data = payload, files = files, verify = False)

print(response.text.encode('utf8'))
python python-3.x post python-requests postman
1个回答
0
投票

这是重写的答案。我建议声明content-type,但是根据我的建议 使用python请求的多部分数据POST:没有发现多部分边界。 你不应该用Python请求手动编写。

相反,有一个 content-disposition 元素,可以用来声明内容的细节。也许只需添加正确的扩展名就足以让服务器接受你的文件。从这里阅读更多信息。https:/developer.mozilla.orgen-USdocsWebHTTPHeadersContent-Disposition。


0
投票

我通过获取http.client代码而不是请求来解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.