Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 使用UrlFetchApp.fetch的Google apps脚本在使用XML数据发出请求时出错_Google Apps Script - Fatal编程技术网

Google apps script 使用UrlFetchApp.fetch的Google apps脚本在使用XML数据发出请求时出错

Google apps script 使用UrlFetchApp.fetch的Google apps脚本在使用XML数据发出请求时出错,google-apps-script,Google Apps Script,编辑:关于乔纳森的评论: 运行此代码时,我遇到以下错误: 无效参数:6406%20Ivy%20LaneGreenbeltMD 这是有问题的代码。我没有包括我的用户ID: function validate_address() { //var userID = 'xxxxxxxxxxx'; //var address1 = '204 main street apt 4'; //var address2 = ''; //var city = ''; //var state =

编辑:关于乔纳森的评论:

运行此代码时,我遇到以下错误:

无效参数:6406%20Ivy%20LaneGreenbeltMD

这是有问题的代码。我没有包括我的用户ID:

function validate_address() {

  //var userID = 'xxxxxxxxxxx';
  //var address1 = '204 main street apt 4';
  //var address2 = '';
  //var city = '';
  //var state = '';
  //var zip5 = '12601';
  //var zip4 = '';

  //Will switch out hard coded values with variables once I get it working.

  var XMLhttp_request = 'http://production.shippingapis.com/ShippingAPI.dll?API=Verify&XML=<AddressValidateRequest USERID="xxxxxxxxxxx"><Address><Address1></Address1><Address2>6406 Ivy Lane</Address2><City>Greenbelt</City><State>MD</State><Zip5></Zip5><Zip4></Zip4></Address></AddressValidateRequest>';

  var response = UrlFetchApp.fetch(XMLhttp_request, options);

  Logger.log(response.getContentText());

}
函数验证_地址(){
//var userID='xxxxxxxxxx';
//var地址1='204大街4号公寓';
//var address2='';
//var city=“”;
//var状态=“”;
//var zip5='12601';
//var zip4='';
//一旦我让它工作起来,就会用变量切换硬编码的值。
var XMLhttp_请求=http://production.shippingapis.com/ShippingAPI.dll?API=Verify&XML=6406 常春藤;
var response=UrlFetchApp.fetch(XMLhttp_请求,选项);
Logger.log(response.getContentText());
}

USPS地址验证API在其网站上有一些示例代码。当我将代码与我的用户ID一起使用时,将其直接复制并粘贴到URL栏中,这样就可以得到我要查找的XML。

所以我自己解决了这个问题。以下是帮助我的文档:

我以前代码中的错误是将api的URL和参数组合在一起。您可以在下面看到它们现在是分开的,查询作为一个对象作为options参数传入。需要注意的是,查询前的“?”符号不在有效负载变量的开头。虽然当您将其直接粘贴到地址栏时,它包含在USPS文档中,但在G.A.S中,您将其忽略

这是对我有用的代码。希望这对其他人有帮助

function validate_address() {

  //var userID = 'xxxxxxxxxxx';
  //var address1 = '204 main street apt 4';
  //var address2 = '';
  //var city = '';
  //var state = '';
  //var zip5 = '12601';
  //var zip4 = '';

  //Will switch out hard coded values with variables once I get it working.

  var payload = 'API=Verify&XML=<AddressValidateRequest USERID="xxxxxxxxxxxx"><Address><Address1></Address1><Address2>6406 Ivy Lane</Address2><City>Greenbelt</City><State>MD</State><Zip5></Zip5><Zip4></Zip4></Address></AddressValidateRequest>';

  var url = 'http://production.shippingapis.com/ShippingAPI.dll';

  var options = {
    'method': 'get',
    'headers': {
        "Accept": "application/xml"
    },
    'payload': payload
};

  var response = UrlFetchApp.fetch(url, options);

  Logger.log(response.getContentText());

  //Logger.log(XMLhttp_request);
}
函数验证_地址(){
//var userID='xxxxxxxxxx';
//var地址1='204大街4号公寓';
//var address2='';
//var city=“”;
//var状态=“”;
//var zip5='12601';
//var zip4='';
//一旦我让它工作起来,就会用变量切换硬编码的值。
var有效载荷='API=Verify&XML=6406常春藤兰格莱恩贝尔特MD';
var url='1〕http://production.shippingapis.com/ShippingAPI.dll';
变量选项={
'方法':'获取',
“标题”:{
“接受”:“应用程序/xml”
},
“有效负载”:有效负载
};
var response=UrlFetchApp.fetch(url,选项);
Logger.log(response.getContentText());
//Logger.log(XMLhttp_请求);
}

我已经对你的答案投了赞成票,但是这个问题还可以通过包括你希望修复的实际错误来改进。我已经在我这边复制了错误,并将其复制到帖子中。感谢您的反馈,stack overflow=)的新功能