Http post-запрос к Google Script, приводящий к требуемой длине ошибки 411

#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 или других, какой ответ вы получите?