0
NickAn
25.12.13
✎
01:42
|
Ниже мой код. Нашел подобный пример на . Первая часть кода срабатывает, я передаю параметры авторизации, а вторая не хочет, говорит нет авторизации, т.е. на следующее подключение авторизация пропала. SetCredentials не работает.
ФайлДанных = "data.txt";
//ПутьКФайлуДанных = КаталогПользователя() + ФайлДанных;
ПутьКФайлуДанных = "D:\"+ФайлДанных;
АдресСайта=";;
ЗапросАвторизации = "?login=yes&type=catalog&mode=checkauth";
ПараметрыПОСТ = "login=log&pass=pas";
WinHttp = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.Open("POST",АдресСайта,0);
WinHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");//windows-1251
WinHttp.SetRequestHeader("Content-length", "" + СтрДлина(ПараметрыПОСТ));
WinHttp.Send(ПараметрыПОСТ);
Текст = СоздатьОбъект("Текст");
ОтветСервера = WinHttp.ResponseText();
Рез = ОтветСервера;
Текст.ДобавитьСтроку(Рез);
Текст.Записать(ПутьКФайлуДанных);
oADOStream = СоздатьОбъект("ADODB.Stream");
oADOStream.Type = 1; //тип данных - Binary
oADOStream.Open();
oADOStream.LoadFromFile(ПутьКФайлуДанных);
ПараметрыФайла = "type=catalog&mode=file&filename="+ФайлДанных;
WinHttp.Open("POST", АдресСайта+ПараметрыФайла, 0);//+ "?type=catalog&mode=file&filename="+ФайлДанных
WinHttp.SetCredentials("log", "pas", 0); //не работает
WinHttp.SetRequestHeader("Content-type", "application/octet-stream");
WinHttp.SetRequestHeader("Content-length", "" + oADOStream.Size);
WinHttp.Send(oADOStream); ОтветСервера = WinHttp.ResponseText();
|
|
1
Torquader
25.12.13
✎
20:40
|
На каждое подключение авторизация должна идти заново, так как каждая команда Open чистит все установленные заголовки в запросе.
Тем более, что авторизация ожидается в параметрах запроса, а не в установке полей авторизации.
|
|