#http #google-apps-script #at-command
#http #google-приложения-скрипт #at-command #google-apps-script
Вопрос:
Я использую команду AT (аналогичную C или C ) для отправки post-запроса в Google Script, где он сохраняет данные. Я получаю сообщение об ошибке 411 error.
Это отправленный код:
AT CHTTPACT="script.google.com",80
//Wait for the CHTTPACT: REQUEST from the module
WAIT=1
POST script.google.com HTTP/1.1<cr><lf>
Host: script.google.com/macros/s/AKfycbwALy3GCY_r5fNOzxzut_RnbDR01Caq83MmsLPRuxoE5EQ7mUE/execrnContent-Length: 0rnContent-Type: json/application<cr><lf>
<cr><lf>^z<cr><lf>
и это ошибка:
CHTTPACT: DATA,1408
http/1.0 411 length required
content-type: text/html; charset=utf-8
referrer-policy: no-referrer
content-length: 1564
date: wed, 06 mar 2019 12:36:35 gmt
<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 411 (Length Required)!!1</title>
<style>
_150x54dp.png) no-repeat
CHTTPACT: DATA,317
;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}
</style>
<a href=//www.google.com/><span id=logo aria-label=Google></span></a>
<p><b>411.</b> <ins>That’s an error.</ins>
<p>POST requests require a <code>Content-length</code> header. <ins>That’s all we know.</ins>
CHTTPACT: 0
Я заставил его работать с моим собственным сервером Node JS, но мне нужно, чтобы он работал с телом json, чтобы он работал с Google и другими облачными серверами:
AT CHTTPACT="59.102.xx.xxx",3000
//Wait for the CHTTPACT: REQUEST from the module
WAIT=1
POST http://59.102.xx.xxx HTTP/1.1<cr><lf>
Host: http://59.102.xx.xxx:3000<cr><lf>
Content-Type: text/html<cr><lf>
<cr><lf>^z<cr><lf>
Комментарии:
1. Ну, вы установили допустимый заголовок content length? В ошибке указано, что вы этого не сделали.
2. Я бы сделал, если бы узнал, как это сделать. Я добавил код, который работает с моим собственным сервером node js.
3. @Amir Я думаю, что если вы на самом деле используете команду AT, значение
Content-Type
неверно. Можете ли вы изменить сjson/application
наapplication/json
и повторить попытку? Если ошибка все еще возникает, как при тестовом запуске, как насчет удаленияContent-Length
и / или `Content-Type`? Если это не решило вашу проблему, я приношу извинения.4. @Tanaike Я сделал оба и не сработал. Причина, по которой я добавил их, заключалась в том, что сервер Google отправил бы это сообщение в моем сообщении о том, что требуется длина содержимого.
5. @Amir Приношу извинения за неудобства. Например, в качестве теста, когда вы получаете доступ к веб-приложениям с помощью curl или других, какой ответ вы получите?