【发布时间】:2021-02-03 18:17:47
【问题描述】:
我们从 C++ 应用程序 (Arduino Sketck) 向 Google 应用脚本网络应用程序 发送了一个 HTTP 请求,但我们得到了 HTTP 响应:HTTP/1.1 302 Moved Temporarily。带有 http 请求的 url 在浏览器中可以正常工作。
相同的代码也适用于其他网站,例如www.google.com。不要使用 script.google.com。
Google Apps 脚本发布的网络应用程序是公开的,任何人甚至匿名都可以访问:
这里是我们使用的代码。
client.println("GET /macros/s/AKfycbyQnmHekk4_NNy3Bl5ILzuSRkykMWaXQ7Rtojk7fFieDUbVqNM/exec?valore=7 HTTP/1.1");
client.println("Host: script.google.com");
client.println("Connection: close");
client.println();
答案是:
HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Date: Wed, 03 Feb 2021 09:29:02 GMT
Location: https://script.google.com/macros/s/AKfycbyQnmHekk4_NNy3Bl5ILzuSRkykMWaXQ7Rtojk7fFieDUbVqNM/exec?valore=7
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: frame-ancestors 'self'
X-XSS-Protection: 1; mode=block
Server: GSE
Accept-Ranges: none
Vary: Accept-Encoding
Connection: close
Transfer-Encoding: chunked
11e
<HTML>
<HEAD>
<TITLE>Moved Permanently</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Moved Permanently</H1>
The document has moved <A HREF="https://script.google.com/macros/s/AKfycbyQnmHekk4_NNy3Bl5ILzuSRkykMWaXQ7Rtojk7fFieDUbVqNM/exec?valore=7">here</A>.
</BODY>
</HTML>
0
disconnecting from server.
网址正确( http://script.google.com/macros/s/AKfycbyQnmHekk4_NNy3Bl5ILzuSRkykMWaXQ7Rtojk7fFieDUbVqNM/exec?valore=7) 但似乎谷歌应用程序脚本网络应用程序将请求重定向(到相同的 url,使用 https 协议)。
使用相同的代码,我们从 Arduino 发出了其他 HTTP 请求,并且运行良好。 例如我们做了:
client.println("GET /search?q=arduino HTTP/1.1");
client.println("Host: www.google.com");
client.println("Connection: close");
client.println();
我们得到了响应 ``HTTP/1.1 200 OK ```,并且 html 响应包含根据查询 q=arduino 的搜索结果
关于我们如何向 Google Apps 脚本网络应用发送有效的 http/https 请求有什么建议吗?
谢谢。
【问题讨论】:
标签: c++ google-apps-script https arduino