Подскажите по HTTPСоединение

  1. 10 г. назад

    Всем привет. Возникла такая задача - передать на сервер запрос и получить ответ. Еще - защищенного соединения нет.
    Текст такой
    Логин = "ivan";
    Пароль = "Ivanov111";

    Сообщение = Новый СообщениеПользователю;
    Попытка

    //Прокси=Новый ИнтернетПрокси();
    //Прокси.НеИспользоватьПроксиДляЛокальныхАдресов=Истина;
    ////Прокси.Сервер("http://mypage.ru");
    //Прокси.Пользователь = Логин;
    //Прокси.Пароль = Пароль;

    //Соединение = Новый HTTPСоединение("pilot-gps.ru/api",,,,Прокси,Истина);
    Соединение = Новый HTTPСоединение("pilot-gps.ru/api",,Логин,Пароль);

    Исключение
    Сообщение.Текст = "Не удалось соединиться с сервером: ";
    Сообщение.Сообщить();
    Сообщение.Текст = ОписаниеОшибки();
    Сообщение.Сообщить();
    Возврат;
    КонецПопытки;

    HTTPЗапрос = Новый HTTPЗапрос;
    HTTPЗапрос.АдресРесурса = "api.php?cmd=run&imei=111&start=111&stop=111&zones=1";
    //HTTPЗапрос.Заголовки = Заголовки;

    //ИмяВыходногоФайла = ПолучитьИмяВременногоФайла("txt");

    Попытка
    HTTPОтвет = Соединение.Получить(HTTPЗапрос);
    //Соединение.ОтправитьДляОбработки(
    Исключение
    Сообщение.Текст = ОписаниеОшибки();
    Сообщение.Сообщить();
    Возврат;
    КонецПопытки;

    Результат = HTTPОтвет.ПолучитьТелоКакСтроку() ;

    В HTTPОтвет код 200, т.е. все нормально. Но Результат = "". Хотя если ввожу в адресной строки полный путь в браузере, ввожу логин и пароль - то в браузере ответ есть. Где-то туплю, не пойму где.
    Подскажите, пожалуйста

    Ответы: (10)
  2. это 8.3?

  3. 8.2.19.76

  4. да, нашёл уже, эти возможности появились начиная с версии 8.2.18

  5. а заголовки точно не надо устанавливать для твоего сервиса?

  6. А вот хрен его знает - в первый раз делаю, вообще не сталкивался до этого. Щас покурю тему

  7. логин и пароль не подходят :)

  8. может, с авторизацией проблемы? попробуй для начала получить с сайта ресурс, для которого не требуется авторизация

  9. ну, хотя бы http://pilot-gps.ru/login/signup например

  10. Вот пример - все нормально, создает html файл
    Функция Пример()
    Сообщение = Новый СообщениеПользователю;


    //http://yandex.ru/yandsearch?text=HTTP%D0%A1%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5&lr=197

    Соединение = Новый HTTPСоединение("yandex.ru");

    ИмяВыходногоФайла = "D:\111.html";

    HTTPЗапрос = Новый HTTPЗапрос;
    HTTPЗапрос.АдресРесурса = "yandsearch?text=HTTP%D0%A1%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5&lr=197";

    Попытка
    HTTPОтвет = Соединение.Получить(HTTPЗапрос,ИмяВыходногоФайла);
    Исключение
    Сообщение.Текст = "Не удалось соединиться с сервером: ";
    Сообщение.Сообщить();
    Сообщение.Текст = ОписаниеОшибки();
    Сообщение.Сообщить();
    Возврат;
    КонецПопытки;
    КонецФункции

    Ответы: (13) (16)
  11. (0) Получить(<HTTPЗапрос>, <ИмяВыходногоФайла>)

    ну и где в твоём запросе второй параметр?

    Ответы: (11) (12)
  12. (10) ему не нужен выходной файл, от использует объект HTTPОтвет

    (новые возможности, появившиеся в релизах 8.2.18 и выше)

    Ответы: (13)
  13. 31.07.2014 09:28:49 отредактировано БухиТог

    +(10) HTTPОтвет возвращает только Заголовки и КодСостояния сервера.

    Ответы: (14)
  14. (11) у меня 1С:Предприятие 8.2 (8.2.19.83)

    вот в (9) всё верно написано:
    HTTPОтвет = Соединение.Получить(HTTPЗапрос,ИмяВыходногоФайла);

  15. (12) да ну?

    Ответы: (16)
  16. HTTPОтвет (HTTPResponse)
    Свойства:

    Заголовки (Headers)
    КодСостояния (StatusCode)

    Методы:

    ПолучитьИмяФайлаТела (GetBodyFileName)
    ПолучитьТелоКакДвоичныеДанные (GetBodyAsBinaryData)
    ПолучитьТелоКакСтроку (GetBodyAsString)

    Описание:

    Предоставляет доступ к содержимому ответа HTTP-сервера на запрос.

    Доступность:

    Тонкий клиент, сервер, толстый клиент, внешнее соединение.

  17. (14) ну вообщем пусть пишет как в (9) и не выпендривается

  18. так для справки, мой пример рабочий
    метод post #11

    Ответы: (18)
  19. (17) у тебя POST запрос, у него GET. Там параметры запроса по другому передаются, ну и вообще есть нюансы...

    ОтправитьДляОбработки (Post)
    Получить (Get)

    Ответы: (19)
  20. (18) ну я так для справки, гет вообще то проще :)

    Ответы: (20)
  21. (19) оно-то понятно, но нужно, чтобы обработка пост-запроса ещё и на сервере была реализована

    Ответы: (21)
  22. (20) у меня на сервере как раз работает.
    платежи подружает.

или зарегистрируйтесь чтобы ответить!