来自Azure自定义API脚本的HTTP POST调用不起作用

史考特

我有一个自定义的Azure API,我想执行一个HTTP POST请求。在这种情况下使用Google Forms,但我认为这是一个普遍的问题。我发现的是POST请求似乎已通过-Google表单获得了响应-但没有数据通过。

这是我的脚本:

exports.get = function(request, response) {
 var p = request.parameters;
 var item = JSON.stringify({entry_123456: "LOGIN", entry_234567: request.query.Email, entry_345678: request.query.Token }); 
    require('request').post({
        uri : 'https://docs.google.com/forms/d/myformkeyhere/formResponse',
        headers : {'Content-Type': 'application/json'},
        body : item
    }, function(err, res, body){
        if (err)
        {
             request.respond(500, "Error: " + err + "; item: " + item); 
        }
        else
        {
            request.respond(200,"Success"); 
        }
    });
    response.send(statusCodes.OK, { message : item + "; response=" + response });
};

我正在使用浏览器中的该地址对其进行测试:

https://myservice.azure-mobile.net/api/[email protected]&Token=YayToken

我正在将这个响应返回给我的浏览器:

{"message":"{\"entry_123456\":\"LOGIN\",\"entry_234567\":\"[email protected]\",\"entry_345678\":\"YayToken\"}; response=[object Object]"}

我以为我已按照文档中的说明进行操作,但遇到了麻烦。有人对此有经验吗?

谢谢!

史考特

MSDN上得到了我的答案

我查看了脚本,这些是我在脚本中发现的问题。

我不确定'request'客户端是否支持'application / json'POST。根据文档,它们支持URL编码。https://github.com/mikeal/request#forms request.respond和response.send中存在一些混淆

感谢您创建Google表单。我将URL加载到IE中,发现它们使用url编码进行表单发布,并且应该可以使用请求库来实现。

这是适合您的代码。您可以通过运行https://forumtest.azure-mobile.net/api/gdocs/?Data1=XYZ&Data2=ABC&Data3=BBC并查看您从https://docs.google.com上的先前响应中输入的变量来轻松对其进行测试/ forms / d / 1DcvdfKSo4JK-9RFAdO5We8nYwT9e604V_HH1uHf8ges / viewanalytics?usp = form_confirm

exports.get = function(request, response) {   
    var googleRequest = require('request');
    var googleUrl = 'https://docs.google.com/forms/d/1DcvdfKSo4JK-9RFAdO5We8nYwT9e604V_HH1uHf8ges/formResponse';
    var r = googleRequest.post(
        googleUrl,
        { form: { 'entry.1173958467':request.query.Data1, 
                  'entry.240822405':request.query.Data2,
                  'entry.976020097':request.query.Data3 } }, 
        function optionalCallback (err, httpResponse, body) {
          if (err) {
            console.error('upload failed:', err);
            response.send(statusCodes.OK, { message : 'Failure' });
          } else {
            console.log('Upload successful!  Server responded with:', body);
            response.send(statusCodes.OK, { message : 'Success' });
          }
        });
};

希望这可以帮助。Manesh Raveendran Terawe公司

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Angular 4时Api帖子调用不起作用

如果调用不是来自表单中的Submit方法,则Express的渲染/重定向不起作用

来自android设备的Web服务调用不起作用,在模拟器上运行良好

从Word Web加载项(Office.Js)进行的API调用不起作用:CORS问题?

通过REST API的Twilio挂断调用不起作用?

通过托管域名对aws api网关的ajax调用不起作用

预填充DocuSign模板的API调用不起作用

Lending Club Folio二级市场列表API调用不起作用

外部调用脚本不起作用

以http开头的自定义URL方案不起作用

来自同一控制器的AngularJs ng-if函数调用不起作用

Android中的Api Rest调用不起作用

Angular JS API api URL调用不起作用

Azure自定义域不起作用

IIS 7.5 Api调用不起作用(HTTP 404)

RESTful JSON API的主干JSONP调用不起作用

来自PATH的Git自定义命令不起作用

cURL PHP API调用不起作用

使用$ q.all进行同步http调用不起作用angularjs

jqgrid中的自定义格式化程序调用不起作用

科尔多瓦Facebook登录FB.api调用不起作用

来自 html 的 REST API 调用不起作用

Microsoft Bot Framework Analytics API 调用不起作用

Laravel 5 GET api 调用正在运行,但 POST api 调用不起作用

Qualtrics API 函数在 EventListener 中调用的自定义函数中不起作用

Flutter - Openweathermap api 调用错误 - 将参数传递给 api 调用不起作用

用 jest spyOn 来模拟 api 调用不起作用

来自 Cursor Oracle 的确定性函数调用不起作用

Angular RXJS 调用 http post 请求不起作用