2016-05-20 3 views
5

Dies ist der Fehler:Fehler mit Octave 4.0.2 Coursera einreichen Zuordnungen

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

Ich verwende Windows 10.

Ich sehe eine möglicherweise relevante Antwort here, aber ich weiß nicht, wo Dieser Code würde innerhalb von Octave hinzugefügt werden.

+1

fügen Sie bitte ein mcve: http://StackOverflow.com/Help/Mcve – Andy

Antwort

3

Try den Patch zu verwenden, die folgenden Zeilen in der Antwortfunktion submitWithConfiguration.m Änderungen:

params = { 'jsonBody', Körper};
% responseBody = URLread (submissionUrl, 'post', params); ALTER CODE
[code, responseBody] = system (sprintf ('echo jsonBody =% s | locken -k -X POST -d @ -% s', body, submissionUrl));

d @ - nimmt Daten in einer Datei auf der aktuellen stdin (das Echo wird ausgefüllt).
-k ermöglicht curl "unsicher" SSL
(siehe curl --help)
HTH

==================
Code auszuführen ist derjenige, den ich habe, aber ich bin W7.
noch einmal zu versuchen Sie, indem Sie Anführungszeichen um die URL zu setzen:
Funktion submissionurl = submissionurl()
submissionurl =
' "https://www-origin.coursera.org/api/onDemandProgrammingImmediateFormSubmissions.v1"'; Ende

(Vorsicht Gebrauch: ‚‚und‘‘, die die „https: // ..“ zitierten auf der Kommandozeile.)

Wenn es einen direkten Aufruf an Coursera nicht funktioniert, tut mit einer Befehlszeile (cmd):

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

nennen Dies wird Coursera und, da es keine gesendeten Form ist, wird die Seite mit einer hTML-Seite reagiert mit dem Ende ... Aktion nicht gefunden ....

wenn diese wor ks, die pb ist wahrscheinlich nicht in locken, aber woanders. Lass uns wissen.

1

Änderung im Anschluss an die in submitWithConfiguration.m:

curl -k -X POST 

zu

curl -k -XPOST 

und versuchen Sie es erneut.

+0

sollte mit Ihrem OS und Curl-Version abgeschlossen werden, löste es nicht in Linux min 18.2. – jgpATs2w

1

Es gab einen Tippfehler in Antwort # 1, der in Antwort # 2 korrigiert wurde.

Die Veränderung ist: In der Funktion Funktion response = submitParts (conf, E-Mail, Token, Teile) gelten folgende

  1. Kommentar der Linie responseBody = urlread(submissionUrl, 'post', params); Typ ändert

  2. das folgende anstelle davon, [code, responseBody] = system(sprintf('echo jsonBody=%s | curl -k -XPOST -d @- %s', body, submissionUrl));

So 10

der endgültige Code der Funktion sieht aus wie

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

Die URL geändert wird. Verwenden Sie das neue in der Funktion submissionUrl() in der Datei lib/submitWithConfiguration.m.

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

Für Check-URL können Sie Curl in Terminal verwenden.

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

Sie müssen so etwas wie {"message":"","statusCode":404}

Mit falschen URL erhalten Sie etwas dose't zu bekommen.