简体   繁体   English

发布到 API 适用于 Postman 但生成的 Python 代码不起作用

[英]Post to API works on Postman but the generated Python code does not

The following code was generated by Postman on a successful post.以下代码由 Postman 在成功发布后生成。 However, when i tried to run it on Python i got Response [409], which said only PDF or JPEG files are accepted, even though the file I submited is a PDF.但是,当我尝试在 Python 上运行它时,我得到了响应 [409],它说只接受 PDF 或 JPEG 文件,即使我提交的文件是 ZBCD1B68617759B1DFCFF0403A6B1Z。 Hope someone can help me out on this one.希望有人可以帮助我解决这个问题。 Already searched for a few days, but couldn't get it working.已经搜索了几天,但无法使其正常工作。 I can't take the headers off, because the website requires authentification.我不能去掉标题,因为该网站需要身份验证。 I was successfull getting the token and session.我成功获得了令牌和 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': 'teste@teste.com.br',
           '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': 'blah@blah.com.br',
           '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': 'AAAAA@FSDAFDSF.com.br'}
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'))

This is re-written answer.这是重写的答案。 I suggested to declare content-type, but according to multipart data POST using python requests: no multipart boundary was found you shouldn't write it manually with Python requests.我建议声明内容类型,但根据使用 python 请求的多部分数据 POST:未找到多部分边界,您不应使用 Python 请求手动编写它。

Instead, there is content-disposition element which can be used to declare details of content.取而代之的是content-disposition元素,可用于声明内容的详细信息。 Perhaps just adding filename with right extension is enough for server to accept your file.也许只需添加具有正确扩展名的文件名就足以让服务器接受您的文件。 Read further info from here: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition从这里阅读更多信息: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition

I solved the prolem by getting the http.client code instead of the requests.我通过获取 http.client 代码而不是请求来解决了这个问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用JSON的POST在邮递员中有效,但在Python中不起作用 - POST with JSON works in Postman but not in Python POST请求在Postman中有效,但在Python中无效 - POST request works in Postman but not in Python JSON output 适用于 postman 但不适用于 python 后请求 - JSON output works in postman but not in python post request Google Photos API BatchRemoveMediaItems 适用于 Postman 但不适用于 Python - Google Photos API BatchRemoveMediaItems works in Postman but not Python API 调用在 POSTMAN 中工作,但生成代码的 API 调用不起作用 - API Call is working in POSTMAN but API call with generated code is not working 使用 Selenium cookies 和 postman 在 ZA7F5F35426B92741139231B56382 中生成 POST 片段 - Use Selenium cookies with postman generated POST snippet in Python Python HTTP Post,其中包含从Postman生成的上传文件和标头 - Python HTTP Post with upload file and headers generated from Postman RESTful API中的POST方法适用于HTTPie,但不适用于Android / Postman - POST method in RESTful API works on HTTPie but not on Android/Postman API适用于Postman,但不适用于浏览器 - API works in Postman, but not on a browser 使用 python 中的请求模块上传文件不起作用(邮递员生成的代码) - Upload file using requests module in python is not working (the code generated by Postman)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM