[英]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.