Eu envio POST com arquivo e resposta com mensagem "erro processando solução"

oii

Eu fiz todo o desafio em python e configurei o envio do arquivo via POST de acordo com documentação da lib requests: https://2.python-requests.org/en/master/user/quickstart/#post-a-multipart-encoded-file

meu codigo ficou assim:

    url = 'https://api.codenation.dev/v1/challenge/dev-ps/submit-solution'
    payload = {'token':'ba9c3a40a70664e44aebf97c426159152f93d62a'}
    files = {'file': open('answer.json', 'rb')}

    request = requests.post(url, data=payload, files=files)

    print(request.text)

porém a resposta que eu recebi, não entendi…

resposta:

{"code":"not_found","error":"user.Service.Find: user.MongoRepository.Find: ObjectIDs must be exactly 12 bytes long (got 1)","message":"Erro processando solução"}

vocês podem me dar uma luz? ajudaria muito… Obrigado!!

1 Curtida

Olá, tudo bem?

O erro aparenta ser algo relativo ao token, pode estar incorreto tanto no arquivo answer como na URL. Porém reparei em seu código que você esta enviando o arquivo com a chave ‘file’, quando na verdade deveria enviar como ‘answer’.

Pode verificar esses pontos e testar novamente por favor?

Abraços

oi!! fiz as alterações necessárias e deu certo!

1 Curtida

Estou com o mesmo problema, enviei um email com o arquivo que estou enviando e um parte do código do envio do post.

Fico no aguardo

Olá…Estou usando JS para resolução do desafio. No momento do envio recebi a mesma mensagem de erro desse tópico. Abaixo minha função de envio !

function sendData(){

const filePath = (__dirname + '/answer.json')
const url = 'https://api.codenation.dev/v1/challenge/dev-ps/submit-solution?token=77fb416b3aaec6c5c191f3779e38e59f5653335e'

fs.readFile(filePath, 'utf-8', (err, file)=>{
    
    if (err) {
        throw err;
    }

    let bodyFormData = new FormData()
    bodyFormData.append('answer', file )
    const config = {headers: {'Content-Type': 'multipart/form-data'}}

    axios.post(url, bodyFormData, config)
    .then((resp) => {
        console.log('O arquivo answer.json foi enviado com sucesso!', resp)
    }).catch(err => {
        console.log('O arquivo answer.json NÃO foi enviado , Erro', err.response.data.message)
    })      

})   

}

Olá ? Eu já consegui resolver o problema do envio !!

{“code”:“invalid”,“error”:"challenge.Service.CalculateProblemSolvingScoreDev: \u003cinvalid\u003e ",“message”:“Erro processando solução”}

alguém pode me ajudar?

1 Curtida

Olá @Cougar446, tudo bem?

Você poderia enviar o seu arquivo answer.json e o seu código para o e-mail meajuda@codenation.com.br?

Dessa maneira posso tentar entender melhor o que possa estar ocorrendo

Abraços

Bom dia, estou com erro 400 na API meu código é o seguinte:
import requests
import json
import hashlib

url = ‘https://api.codenation.dev/v1/challenge/dev-ps/submit-solution?token=796680edb86bd19608add45f53786688223f0f56

answer= {‘file’: open(‘answer.json’, ‘rb’)}

headers = {‘content-type’: ‘multipart/form-data’}

r = requests.post(url, files=answer, headers=headers)

print(r.text)

Olá, tudo bem?

Tenta mudar a linha answer= {‘file’: open(‘answer.json’, ‘rb’)}
por:
answer= {‘answer’: open(‘answer.json’, ‘rb’)}

Pois a API espera que o nome do parametro contendo o arquivo seja ‘answer’

1 Curtida