Решил было набросать скрипт на lua для запросов к redmine серверу и не разобрался как работают функции пакетов socket и socket.http.
c = socket.connect("local.redmine", 80)
возвращает nil
strUrl = " /issues.xml"
strUrl = strUrl.."?key="..apiAccessKey
strUrl = strUrl.."&assigned_to_id=me"
strUrl = strUrl.."&status_id=2"
strUrl = strUrl.."&limit=100"
strUrl = strUrl.."\r\n\r\n"
res, c, cache = http.request("local.redmine", "GET", strUrl)
в res вычитывает html код главной страницы сайта
какие-то такие вариации пробовал
local headers = {}
headers["Content-Type"] = "application/json"
headers["X-Parse-Application-Id"] = "LuaTest"
headers["X-Redmine-API-Key"] = apiAccessKey
local body = ""
local params = {}
params.headers = headers
params.body = body
res, c, cache = http.request("local.redmine", "GET", networkListener, params)
На C++ это выглядело так, и вполне себе работало
SOCKET Socket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
struct hostent *host;
host = gethostbyname("local.redmine");
SOCKADDR_IN SockAddr;
SockAddr.sin_port=htons(80);
SockAddr.sin_family=AF_INET;
SockAddr.sin_addr.s_addr = *((unsigned long*)host->h_addr);
connect(Socket,(SOCKADDR*)(&SockAddr),sizeof(SockAddr));
string strUrl = "GET /issues.xml";
strUrl += "?key=" + apiAccessKey;
strUrl += "&assigned_to_id=me";
strUrl += "&status_id=2";
strUrl += "&limit=100";
strUrl += "\r\n\r\n";
send(Socket, strUrl.c_str(), strUrl.length(), 0);
char buffer[10001];
int nDataLength;
while ((nDataLength = recv(Socket,buffer, 10000,0)) > 0){
buffer[nDataLength] = 0;
m_strOut += buffer;
strXmlAnswer += buffer;
}
closesocket(Socket);