2016-05-20 105 views
5

这是错误:错误分配

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

我使用Windows 10

我看到一个可能相关答案here,但我不知道在哪里这段代码将被添加到Octave中。

+1

请添加一个mcve:http://stackoverflow.com/help/mcve – Andy

回答

3

尝试使用改变submitWithConfiguration.m的响应函数以下行的补丁:

PARAMS = { 'jsonBody',身体};
%responseBody = urlread(submissionUrl,'post',params);旧代码
[code,responseBody] = system(sprintf('echo jsonBody =%s | curl -k -X POST -d @ - %s',body,submissionUrl));

d @ - 在当前stdin的文件中获取数据(回显填充)。
-k允许卷曲执行 “不安全” SSL
(见卷曲--help)
HTH

==================
代码是我有的,但我是W7。
在周围的URL设置引号做的另一个尝试:
功能submissionUrl = submissionUrl()
submissionUrl =
' “https://www-origin.coursera.org/api/onDemandProgrammingImmediateFormSubmissions.v1”'; 结束

(谨慎使用:“‘和’”将引用“https://开头。”在命令行)。

如果它不工作,做coursera直接调用使用命令行(CMD):

卷曲-k“https://www-origin.coursera.org/api/onDemandProgrammingImmediateFormSubmissions.v1

这将调用coursera和,因为没有发送的形式,该网站将一个HTML页面进行响应接近尾声...未找到操作....

如果这个问题ks,pb可能不在卷曲内,而是在其他地方。让我们知道。

1

变化submitWithConfiguration.m如下:

curl -k -X POST 

curl -k -XPOST 

,然后再试一次。

+0

应该用你的操作系统和卷曲版本来完成,并没有解决它在Linux分钟18.2。 – jgpATs2w

1

答案#1中有一个错误,在答案#2中已更正。

的变化是: 在功能方面, 函数响应= submitParts(CONF,电子邮件,令牌,份)应用以下更改

  1. 注释行responseBody = urlread(submissionUrl, 'post', params);

  2. 类型以下代替它, [code, responseBody] = system(sprintf('echo jsonBody=%s | curl -k -XPOST -d @- %s', body, submissionUrl));

因此函数的最终代码看起来像

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

的URL被改变。在lib/submitWithConfiguration.m文件的submissionUrl()函数中使用新的。

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

对于检查URL,您可以在终端中使用卷曲。

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

你必须得到像{"message":"","statusCode":404}

有了错误的URL,你dose't得到任何东西。