#911 support params option in Parse.Cloud.httpRequest

This commit is contained in:
Carmen
2016-03-08 20:23:55 +08:00
parent 241cd8c735
commit 440099267d
2 changed files with 44 additions and 2 deletions

View File

@@ -24,7 +24,11 @@ app.get("/301", function(req, res){
app.post('/echo', function(req, res){
res.json(req.body);
})
});
app.get('/qs', function(req, res){
res.json(req.query);
});
app.listen(13371);
@@ -193,4 +197,35 @@ describe("httpRequest", () => {
}
});
})
it("should params object to query string", (done) => {
httpRequest({
url: httpRequestServer+"/qs",
params: {
foo: "bar"
}
}).then(function(httpResponse){
expect(httpResponse.status).toBe(200);
expect(httpResponse.data).toEqual({foo: "bar"});
done();
}, function(){
fail("should not fail");
done();
})
});
it("should params string to query string", (done) => {
httpRequest({
url: httpRequestServer+"/qs",
params: "foo=bar&foo2=bar2"
}).then(function(httpResponse){
expect(httpResponse.status).toBe(200);
expect(httpResponse.data).toEqual({foo: "bar", foo2: 'bar2'});
done();
}, function(){
fail("should not fail");
done();
})
});
});

View File

@@ -1,4 +1,5 @@
var request = require("request"),
querystring = require('querystring'),
Parse = require('parse/node').Parse;
var encodeBody = function(body, headers = {}) {
@@ -34,7 +35,13 @@ module.exports = function(options) {
options.body = encodeBody(options.body, options.headers);
// set follow redirects to false by default
options.followRedirect = options.followRedirects == true;
// support params options
if (typeof options.params === 'object') {
options.qs = options.params;
} else if (typeof options.params === 'string') {
options.qs = querystring.parse(options.params);
}
request(options, (error, response, body) => {
if (error) {
if (callbacks.error) {