在云代码中将CURL请求转换为Parse.com HttpWebRequest

时间:2014-10-11 17:38:56

标签: javascript curl parse-platform httprequest

我需要在云代码中运行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方法有效。

1 个答案:

答案 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);
 }
});