Я пытаюсь взаимодействовать с Cleverbot API с помощью Lua. У меня есть ключ и имя пользователя, поэтому я протестировал Postman, и все сработало отлично. Затем я попытался сделать то же самое с Lua, но у меня возникла странная ошибка.
Это код:
local https = require("ssl.https")
local string = require("string")
local ltn12 = require ("ltn12")
local funcs = (loadfile "./libs/functions.lua")()
local function cleverbot(msg)
local params = {
['user'] = 'SyR2nvN1cAxxxxxx',
['key'] = 'ckym8oDRNvpYO95GmTD14O9PuGxxxxxx',
['nick'] = 'cleverbot',
['text'] = tostring(msg),
}
local body = funcs.encode_table(params)
local response = {}
ok, code, headers, status = https.request({
method = "POST",
url = "https://cleverbot.io/1.0/ask/",
headers = {
['Accept'] = '*/*',
['content-type'] = 'application/x-www-form-urlencoded',
['accept-encoding'] = 'gzip',
['content-length'] = tostring(#body),
},
print(tostring(ok)),
print(tostring(code)),
print(tostring(headers)),
print(tostring(status)),
source = ltn12.source.string(body),
sink = ltn12.sink.table(response)
})
response = table.concat(response)
if code ~= 200 then
return
end
if response[1] ~= nil then
return tostring(response)
end
end
Однако, когда я вызываю это, вот что показывают эти 4 отпечатка:
nil
tlsv1 alert internal error
nil
nil
Вместо этого я попытался подключиться с помощью HTTP, но вот что происходит:
1
301
table: 0xe5f7d60
HTTP/1.1 301 Moved Permanently
response
всегда пусто. Пожалуйста, что я делаю не так? Спасибо!
print(ok, code, headers, status)
снаружи. Я также удалил эту вещьfuncs.encode_table(params)
и тестирую уже отформатированную строку параметров. Я также добавил тудаprotocol = "tlsv1"
, но результат точно такой же. Что еще не так? - person bokirov   schedule 06.12.2015https.request
в простой форме, и они отлично работают. Единственная проблема заключается в этой общей форме, которая сообщает об ошибке tlsv1. - person bokirov   schedule 06.12.2015