这是发出请求的 Google Apps 脚本:
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
. 两个相同的请求怎么会有不同的结果?关于我的 Google Apps 脚本,我是否遗漏了什么?我试过使用调试器,但没有帮助。