curl 异常错误:UrlFetchApp时的参数无效

svujldwt  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(122)

我是一个初学者,我正在创建一个函数来列出我的产品从一个api。
产品插入工作正常,但当安装GET时,我总是得到这样的消息:
异常错误:UrlFetchApp时的参数无效。
在api文档中,他们要求我使用以下url:

curl -X GET "https://bling.com.br/Api/v2/produtos/json/"
 -G
 -d "apikey={apikey}"

但我不知道该怎么做。
在插入中,只有简单的URL起作用...(const url = 'https://bling.com.br/Api/v2/produto/json/?apikey=MyKeyHere';
如果你能给予我一些提示,那就太好了。

function listaproduto() {

const url = 'curl -X GET "https://bling.com.br/Api/v2/produtos/json/" -G -d apikey=IPutTheKeyHere';


    const xml = {

     xml: '<?xml version="1.0" encoding="UTF-8"?><produto><codigo></codigo><descricao></descricao><tipo></tipo><situacao>Ativo</situacao></produto>'

   };

    const options = {
        method: 'GET',
        followRedirects: true,
        muteHttpExceptions: true,
        payload: xml,
};

     const response = UrlFetchApp.fetch(url, options);
     Logger.log(response.getContentText());
}
eoxn13cs

eoxn13cs1#

当您使用UrlFetchApp类别时,并不是像在命令列中一样执行命令,而是建立具有信息片段的对象,这些信息片段共同组成您在命令列中执行的相同要求。
关于这个类的更多文档可以在https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app这个页面上找到,并带有一些例子。
在代码示例中,您输入了整个命令作为UrlFetchApp应获取的URL。相反,您需要单独输入URL,就像您在示例中所做的那样。
curl和UrlFetchApp是不同的解决方案,因此它们可能无法实现相同的结果。

  • 命令行中的**-X**与UrlFetchApp的url参数相同。(您在哪里得到错误消息。@Mushroomator建议应该可以解决该问题)
  • 命令行中的**-G指定-d**中的所有数据都将在HTTP GET请求中使用,这与在此调用的参数中设置method: 'GET'相同。
    *-d中的数据被添加到payload中。

我建议您查看文档,并调整您的命令当前的实现与UrlFetchApp文档.它不是很清楚如何您访问的URL需要接收XML数据,你会发现如何上传数据作为一个二进制文件的信息,关于如何添加XML数据作为请求有效负载的细节,你可以检查这个其他问题:HTTP request with XML payload using UrlFetchApp其中@Tanaike发表了评论并提供了答案。

相关问题