2
respostas

Erro 22 argumento invalido

import http.client
import mimetypes
conn = http.client.HTTPSConnection("thirdparty-api.robbyson.com")
dataList = []
boundary = 'wL36Yn8afVp8Ag7AmP8qZ0SA4n1v9T'
dataList.append('--' + boundary)
dataList.append('Content-Disposition: form-data; name=text;')

dataList.append('Content-Type: {}'.format('multipart/form-data'))
dataList.append('')

dataList.append("teste de envio postman")
dataList.append('--' + boundary)
dataList.append('Content-Disposition: form-data; name=publishDate;')

dataList.append('Content-Type: {}'.format('multipart/form-data'))
dataList.append('')

dataList.append("2020-11-05 02:45:00")
dataList.append('--' + boundary)
dataList.append('Content-Disposition: form-data; name=expirationDate;')

dataList.append('Content-Type: {}'.format('multipart/form-data'))
dataList.append('')

dataList.append("2020-11-30 23:59:59")
dataList.append('--' + boundary)
dataList.append('Content-Disposition: form-data; name=classification_id;')

dataList.append('Content-Type: {}'.format('multipart/form-data'))
dataList.append('')

dataList.append("1")
dataList.append('--' + boundary)
dataList.append('Content-Disposition: form-data; name=hideSender;')

dataList.append('Content-Type: {}'.format('multipart/form-data'))
dataList.append('')

dataList.append("False")
dataList.append('--' + boundary)
dataList.append('Content-Disposition: form-data; name=sender;')

dataList.append('Content-Type: {}'.format('multipart/form-data'))
dataList.append('')

dataList.append("28-1010024655")
dataList.append('--' + boundary)
dataList.append('Content-Disposition: form-data; name=users;')

dataList.append('Content-Type: {}'.format('multipart/form-data'))
dataList.append('')

dataList.append("28-1010006925")
dataList.append('--' + boundary)
dataList.append('Content-Disposition: form-data; name=previewBanner; filename={0}'.format('/C:/Users/carlos_andre/Desktop/CLK/CAPA_RV.jpg'))

fileType = mimetypes.guess_type('/C:/Users/carlos_andre/Desktop/CLK/CAPA_RV.jpg')[0] or 'application/octet-stream'
dataList.append('Content-Type: {}'.format(fileType))
dataList.append('')

with open('/C:/Users/carlos_andre/Desktop/CLK/CAPA_RV.jpg') as f:
  dataList.append(f.read())
dataList.append('--'+boundary+'--')
dataList.append('')
body = '\r\n'.join(dataList)
payload = body
headers = {
  'x-api-key': 'chave da api',
  'Content-type': 'multipart/form-data; boundary={}'.format(boundary)
}
conn.request("POST", "/api/v1/notification", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Retorna o seguinte erro: OSError: [Errno 22] Invalid argument: '/C:/Temp/CLK/capaarv.jpg'

Não consegui encontrar algo a internet sobre esse erro, Alguem consegue ajudar?

Obs.: Estou rodadno esse script pelo PDI(pentaho data integration)

2 respostas

Oi, tudo bem?

Olhando para o erro aparentemente está no código:

with open('/C:/Users/carlos_andre/Desktop/CLK/CAPA_RV.jpg') as f:

Observe que C: é o diretório raiz já, ou seja, não existe essa / antes dele.

Erick bom dia, foi a primeira coisa que eu pensei mas o resultado foi o mesmo, mandei assim pq fiz os testes pelo postman e ele gerou o codigo assim, ate tentei usar a biblioteca requests porem ele da um erro de "Unsupported Media Type"