我需要在云代码中运行cURL请求,但我无法成功转换它(返回错误代码401:未经授权):
cURL请求格式为:
curl --digest -u Key:Secret "http://example.com/" --form imagepath=@"animage.jpg" -X PUT
我正在尝试这个:
Parse.Cloud.httpRequest({
method: 'PUT',
url: 'http://example.com',
headers: {
'Content-Type': "application/json",
'Key': "xXXXXx",
'Secret': "xXXXXXx",
},
body: {
'imagepath': "http://.../photo.png"
},
success: function(httpResponse) {
console.log(httpResponse.text);
},
error: function(httpResponse) {
console.error('Request failed with response code ' + httpResponse.status);
}
});
[UPDATE]
我尝试使用GET方法(了解它是如何工作的)这是在使用该调用(我已经找到了谷歌浏览器开发人员检查员的授权行...):
Parse.Cloud.httpRequest({
method: 'GET',
url: 'http://example.com',
headers: {
Authorization: 'Digest username="XXxxXXXX", realm="API Name", nonce="XXXxxxXXX", uri="example.com", response="XXXxxxXXX", opaque="XXxxxxXXX", qop=auth, nc=xxXXXxx, cnonce="XXXxxxXX"'
},
success: function(httpResponse) {
console.log(httpResponse.text);
response.success("Okayyy!");
},
error: function(httpResponse) {
console.error('Request failed with response code ' + httpResponse.status);
response.error("error");
}
});
但没有办法使PUT方法有效。
答案 0 :(得分:0)
您似乎正在尝试使用基本身份验证加载网址。如果确实如此,您可以将凭据作为URL的一部分传递。
Parse.Cloud.httpRequest({
method: 'PUT',
url: 'http://key:value@example.com',
headers: {
'Content-Type': "application/json",
},
body: {
'imagepath': "http://.../photo.png"
},
success: function(httpResponse) {
console.log(httpResponse.text);
},
error: function(httpResponse) {
console.error('Request failed with response code ' + httpResponse.status);
}
});