これは、リクエストを行う Google Apps Script です。
UrlFetchApp.fetch('https://user:password@sitename.com/api', {
method: 'put',
headers: { 'Accept': '*/*' },
payload: 'foo=bar&baz=qux'
});
検査のためにhttp://requestb.in/に正常に投稿できます。
PUT /1bfk94g1 HTTP/1.1
User-Agent: Mozilla/5.0 (compatible; GoogleDocs; script; +http://docs.google.com)
Host: requestb.in
Content-Type: application/x-www-form-urlencoded
Content-Length: 43
Connection: keep-alive
Accept-Encoding: gzip
Accept: */*
foo=bar&baz=qux
ただし、リクエスト URL が の場合は失敗しますhttps://user:password@sitename.com/api
。表示される唯一のエラー情報はBad request: https://user:password@sitename.com/api
.
curl
まったく同じ HTTP リクエストを生成するコマンドを作成しました。
curl -XPUT \
-H 'Accept-Encoding: gzip' \
--user-agent 'Mozilla/5.0 (compatible; GoogleDocs; script; +http://docs.google.com)' \
-d foo='bar' \
-d baz='qux'\
https://user:password@sitename.com/api
に正常に投稿されhttps://user:password@sitename.com/api
ます。2 つの同一の要求が異なる結果をもたらすのはなぜですか? Google Apps Script に関して何か不足していますか? デバッガーを使用してみましたが、役に立ちませんでした。