我想使用mIRC在Dropbot上创建一个文件夹
但是回声总是得到这样的信息:
400 Bad Request
The plain HTTP request was sent to HTTPS port
我不知道为什么会这样。 这是我的代码:
alias dropboxCreateFolder {
sockclose dropboxCreateFolder
sockopen dropboxCreateFolder api.dropboxapi.com 443
}
ON *:SOCKOPEN:dropboxCreateFolder: {
if ($sockerr) { sockclose $sockname | halt }
var %data = {"path":"/myfile/songs"}
sockwrite -nt $sockname POST /2/files/create_folder HTTP/1.1
sockwrite -nt $sockname Host: api.dropboxapi.com
sockwrite -nt $sockname User-Agent: api-explorer-client
sockwrite -nt $sockname Authorization: Bearer Access_Token
sockwrite -nt $sockname Content-Type: application/json
sockwrite -nt $sockname $crlf $+ %data
}
ON *:SOCKREAD:dropboxCreateFolder: {
if ($sockerr) { sockclose $sockname | halt }
else {
var %sockreader | sockread %sockreader
echo -s %sockreader
}
}
答案 0 :(得分:0)
您显示的错误告诉您向HTTP端口发送纯HTTP请求。这意味着api.dropboxapi.com期望在端口443上建立SSL连接,但您尝试创建非SSL连接。
您需要在sockopen命令中指定-e
switch来代替创建SSL连接。
答案 1 :(得分:0)
1-您没有使用SSL。这是一个Dropbox API要求。
2-你没有设置Content-Length标题,你应该在POST时真正做到这一点。
alias dropboxCreateFolder {
sockclose dropboxCreateFolder
sockopen -e dropboxCreateFolder api.dropboxapi.com 443
}
ON *:SOCKOPEN:dropboxCreateFolder: {
if ($sockerr) { sockclose $sockname | halt }
var %data = {"path":"/myfile/songs"}
sockwrite -nt $sockname POST /2/files/create_folder HTTP/1.1
sockwrite -nt $sockname Host: api.dropboxapi.com
sockwrite -nt $sockname User-Agent: api-explorer-client
sockwrite -nt $sockname Authorization: Bearer Access_Token
sockwrite -nt $sockname Content-Type: application/json
sockwrite -nt $sockname Content-Length: $len(%data)
sockwrite -nt $sockname $crlf $+ %data
}
ON *:SOCKREAD:dropboxCreateFolder: {
if ($sockerr) { sockclose $sockname | halt }
else {
var %sockreader | sockread %sockreader
echo -s %sockreader
}
}