如何在 Gmail 上下文小工具中发出 HTTP POST 请求?
How to make an HTTP POST request in Gmail Contextual Gadget?
我正在开发 Gmail 上下文小工具,现在我遇到了 Post Http 通信问题。我对 get 请求没有任何问题,这是我的 get 请求代码:
var mydata = { id: 10, name: 'sample1'};
var params = {};
var url = "https://myserver/handler/sample.ashx" + "?" + gadgets.io.encodeValues(mydata);
params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
params[gadgets.io.RequestParameters.AUTHORIZATION]=gadgets.io.AuthorizationType.SIGNED;
params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
gadgets.io.makerequest(url,callback,params);
但是当我需要发出 post 请求时,我在服务器端获取 mydata 时遇到了问题。我检查了 request.Params、request.QueryString、request.Form 中的所有变量。空无一物!
var mydata = { id: 10, name: 'sample1'};
var params = {};
var url = "https://myserver/handler/sample.ashx";
params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
params[gadgets.io.RequestParameters.AUTHORIZATION]=gadgets.io.AuthorizationType.SIGNED;
params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
params[gadgets.io.RequestParameters.POST_DATA] = mydata;
gadgets.io.makerequest(url,callback,params);
我的问题是什么?
使用gadgets.io.encodeValues设置POST_DATA
params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues(postdata);
或使用此模式隔离您的数据:
params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues({
Gadget_Post_DATA: gadgets.json.stringify(mydata)
});;
我正在开发 Gmail 上下文小工具,现在我遇到了 Post Http 通信问题。我对 get 请求没有任何问题,这是我的 get 请求代码:
var mydata = { id: 10, name: 'sample1'};
var params = {};
var url = "https://myserver/handler/sample.ashx" + "?" + gadgets.io.encodeValues(mydata);
params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
params[gadgets.io.RequestParameters.AUTHORIZATION]=gadgets.io.AuthorizationType.SIGNED;
params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
gadgets.io.makerequest(url,callback,params);
但是当我需要发出 post 请求时,我在服务器端获取 mydata 时遇到了问题。我检查了 request.Params、request.QueryString、request.Form 中的所有变量。空无一物!
var mydata = { id: 10, name: 'sample1'};
var params = {};
var url = "https://myserver/handler/sample.ashx";
params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
params[gadgets.io.RequestParameters.AUTHORIZATION]=gadgets.io.AuthorizationType.SIGNED;
params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
params[gadgets.io.RequestParameters.POST_DATA] = mydata;
gadgets.io.makerequest(url,callback,params);
我的问题是什么?
使用gadgets.io.encodeValues设置POST_DATA
params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues(postdata);
或使用此模式隔离您的数据:
params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues({
Gadget_Post_DATA: gadgets.json.stringify(mydata)
});;