2016-05-20 26 views
5

Questo è l'errore:errore usando Octave 4.0.2 a presentare Coursera Assegnazione

curl: (1) Protocol "https" not supported or disabled in libcurl 
    !! Submission failed: unexpected error: input file does not exist 
    !! Please try again later. 

Sto usando Windows 10.

vedo una risposta possibilmente rilevante here, ma non so dove questo codice verrebbe aggiunto in Octave.

+1

si prega di aggiungere un MCVE: http://stackoverflow.com/help/mcve – Andy

risposta

3

tenta di utilizzare la patch che cambia seguenti righe nella funzione di risposta di submitWithConfiguration.m:

params = { 'jsonBody', body};
% responseBody = urlread (submissionUrl, 'post', params); CODICE VECCHIO
[code, responseBody] = system (sprintf ('echo jsonBody =% s | curl -k -X POST -d @ -% s', body, submissionUrl));

d @ - acquisisce i dati in un file sullo stdin corrente (l'eco si riempie).
-k permette ricciolo di eseguire SSL "insicuro"
(vedi ricciolo --help)
HTH

==================
il codice è quello che ho, ma io sono W7.
Fare un'altra prova impostando le virgolette attorno alla url in:
funzione submissionUrl = submissionUrl()
submissionUrl =
' "https://www-origin.coursera.org/api/onDemandProgrammingImmediateFormSubmissions.v1"'; fine

(uso cautela: ' 'e'' che citare il "https: // .." sulla riga di comando.)

Se non funziona, fare una chiamata diretta a Coursera con una riga di comando (cmd):

ricciolo -k "https://www-origin.coursera.org/api/onDemandProgrammingImmediateFormSubmissions.v1"

Ciò richiederà Coursera e, in quanto non v'è alcuna forma inviato, il sito risponderà con una pagina html con vicino alla fine ... Azione non trovata ....

se questo wor ks, il pb non è probabilmente all'interno di curl, ma da qualche altra parte. Facci sapere.

1

Variazione quanto segue in submitWithConfiguration.m:

curl -k -X POST 

a

curl -k -XPOST 

e riprovare.

+0

shoud essere completato con il sistema operativo e la versione ricciolo, non ha risolto in Linux Mint 18.2. – jgpATs2w

1

Si è verificato un errore di battitura nella risposta n. 1, che è stata corretta nella risposta n. 2.

Il cambiamento è: Nella funzione, funzione di risposta = submitParts (conf, email, token, parti) Applicare le seguenti modifiche

  1. commento della linea responseBody = urlread(submissionUrl, 'post', params);

  2. Tipo il seguente al posto di esso, [code, responseBody] = system(sprintf('echo jsonBody=%s | curl -k -XPOST -d @- %s', body, submissionUrl));

Quindi il codice finale della funzione si presenta come

function response = submitParts(conf, email, token, parts) 
    body = makePostBody(conf, email, token, parts); 
    submissionUrl = submissionUrl(); 
    params = {'jsonBody', body}; 
    #responseBody = urlread(submissionUrl, 'post', params); 
    [code, responseBody] = system(sprintf('echo jsonBody=%s | curl -k -XPOST -d @- %s', body, submissionUrl)); 
    response = loadjson(responseBody); 
end 
6

L'URL viene modificato. Utilizzare il nuovo nella funzione submissionUrl() nel file lib/submitWithConfiguration.m.

function submissionUrl = submissionUrl() 
    %submissionUrl = 'https://www-origin.coursera.org/api/onDemandProgrammingImmediateFormSubmissions.v1'; 
    submissionUrl = 'https://www.coursera.org/api/onDemandProgrammingImmediateFormSubmissions.v1'; 
end 

Per l'URL di controllo è possibile utilizzare arricciatura nel terminale.

curl -k 'https://www.coursera.org/api/onDemandProgrammingImmediateFormSubmissions.v1' 

È necessario ottenere qualcosa di simile a {"message":"","statusCode":404}

Con URL sbagliato si dose't ottiene nulla.