Автор Тема: Отправка GET запроса,проблема с ответом.  (Прочитано 2621 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gzzk [?]

  • Новичок
  • *
  • Сообщений: 104
  • Репутация: 1
    • Награды
(нажмите для показа/скрытия)
Сей код в теории должен отправлять такой запрос:
GET /tasks/check?id=39411 HTTP/1.1
Host: montytool.ru
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17
Content-Type: application/x-www-form-urlencoded
Referer: http://montytool.ru/tasks
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3
Cookie: PHPSESSID=lspb98gqnvgth9cef0jc558rq0; user_hash=770bc2afdfcd1e47d59c5557475f6e3c8efd4bc5; _user_id=190405458; _user_hash=770bc2afdfcd1e47d59c5557475f6e3c8efd4bc5
А получать что-то вроде этого:
{"error_code":2}или
{"error_code":1,"points":"10"}Однако срабатывает условие "Полученные данные неверны.".
Помогите,ведь я не столь опытен,как вы.
Заранее спасибо за ответы.

Русское сообщество AutoIt

Отправка GET запроса,проблема с ответом.
« Отправлен: Февраль 18, 2013, 22:23:09 »

Оффлайн inververs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 2135
  • Репутация: 459
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Отправка GET запроса,проблема с ответом.
« Ответ #1, Отправлен: Февраль 18, 2013, 23:56:57 »
Может сессия устарела и куки недействительные?

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7806
  • Репутация: 2279
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: Отправка GET запроса,проблема с ответом.
« Ответ #2, Отправлен: Февраль 19, 2013, 01:23:02 »
Gzzk  [?]
Цитировать
срабатывает условие "Полученные данные неверны.".
Видимо проблема в регулярном выражении.
Что выдаёт $sData?


Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Оффлайн darkwhite [?]

  • Новичок
  • *
  • Сообщений: 129
  • Репутация: 4
  • Пол: Мужской
    • Награды
Re: Отправка GET запроса,проблема с ответом.
« Ответ #3, Отправлен: Февраль 19, 2013, 05:10:48 »
Gzzk  [?]
Цитировать
$aData = StringRegExp($sData, '(?s)(.*?)\r\n\r\n(.*)', 3) ;отделяем http-заголовки от тела сообщения ('заголовки' & @CRLF & @CRLF & 'тело')
If @error Then
    MsgBox(16, 'Ошибка', 'Полученные данные неверны.')
    Exit 5
EndIf
этой частью кода вы пытаетесь вычлденить ответ сервера
но проверяете ошибку самой функции 
Код: AutoIt [Выделить]

согласен с CreatoR дело в шаблоне выражения - посмотрите сначала сам полученный ответ а затем что вам предлагает после выборки шаблон

Русское сообщество AutoIt

Re: Отправка GET запроса,проблема с ответом.
« Ответ #3 Отправлен: Февраль 19, 2013, 05:10:48 »

Оффлайн Gzzk [?]

  • Новичок
  • *
  • Сообщений: 104

  • Автор темы
  • Репутация: 1
    • Награды
Re: Отправка GET запроса,проблема с ответом.
« Ответ #4, Отправлен: Февраль 19, 2013, 08:32:18 »
При таком коде выходит следующее,отмечу что 1 - непонятное значение,появляющееся каждый раз когда я отправляю пакет,т.е. неверное значение.
Код: AutoIt [Выделить]
$aData = StringRegExp($sData, '(?s)(.*?)\r\n\r\n(.*)', 3) ;отделяем http-заголовки от тела сообщения ('заголовки' & @CRLF & @CRLF & 'тело')

MsgBox(0, 'Data', $sData)
MsgBox(0, 'Data', $aData)



Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2313
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: Отправка GET запроса,проблема с ответом.
« Ответ #5, Отправлен: Февраль 19, 2013, 09:41:47 »
Gzzk,
У Вас ошибка в запросе. Так у меня работает, только Cookie новые вставьте, если с этими уже не работает.
Код: AutoIt [Выделить]
$sDomain = 'montytool.ru' ;домен или ip-адрес
$iPort = 80 ;порт

;Запрос, который будет отправлен серверу
$sRequest = 'GET /tasks/check?id=39297/ HTTP/1.1' & @CRLF ;Request-строка, параметры GET-запроса
$sRequest &= 'User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17' & @CRLF
$sRequest &= 'Host: ' & $sDomain & @CRLF
$sRequest &= 'Referer: http://montytool.ru/tasks' & @CRLF
$sRequest &= 'Connection: Close' & @CRLF
$sRequest &= 'Cookie: PHPSESSID=lspb98gqnvgth9cef0jc558rq0; user_hash=770bc2afdfcd1e47d59c5557475f6e3c8efd4bc5; _user_id=190405458; _user_hash=770bc2afdfcd1e47d59c5557475f6e3c8efd4bc5' & @CRLF & @CRLF
ConsoleWrite($sRequest & @LF)
If TCPStartup() = 0 Then ;запускаем TCP/UDP-службы
    MsgBox(16, 'Ошибка', 'Не удалось запустить TCP/UDP-службы.')
    Exit 1
EndIf

$sIP = TCPNameToIP($sDomain) ;получаем ip-адрес

If @error Then
    MsgBox(16, 'Ошибка', 'Не удалось получить ip-адрес сервера.')
    Exit 2
EndIf

$iSocket = TCPConnect($sIP, $iPort) ;соединяемся с сервером

If @error Then
    MsgBox(16, 'Ошибка', 'Не удалось соедениться с сервером.')
    Exit 3
EndIf

TCPSend($iSocket, $sRequest) ;отправляем сообщение

If @error Then
    MsgBox(16, 'Ошибка', 'Не удалось отправить запрос.')
    Exit 4
EndIf

$sData = Binary('')
$iTimer = TimerInit() ;запускаем таймер

Do
    $sBuffer = TCPRecv($iSocket, 1024) ;получаем часть сообщения сервера
    $iError = @error
    If Not $sBuffer = '' Then ;если удалось получить сообщение
        $sData &= $sBuffer ;сохраняем полученное сообщение
        $iTimer = TimerInit() ;обнуляем таймер
    EndIf
Until $iError <> 0 Or TimerDiff($iTimer) > 5000 ;если при получении сообщения произошла ошибка (данные получены, соединение закрыто) или в течении 5 секунд ничего не было получено, выход из цикла

TCPCloseSocket($iSocket)
TCPShutdown()
ConsoleWrite($sData & @LF)

« Последнее редактирование: Февраль 19, 2013, 12:00:28 от madmasles »

Русское сообщество AutoIt

Re: Отправка GET запроса,проблема с ответом.
« Ответ #5 Отправлен: Февраль 19, 2013, 09:41:47 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
24 Ответов
15470 Просмотров
Последний ответ Февраль 10, 2011, 22:13:56
от Kaster
4 Ответов
4221 Просмотров
Последний ответ Май 15, 2011, 14:25:02
от panandrusha
1 Ответов
1849 Просмотров
Последний ответ Июнь 28, 2011, 19:54:14
от CreatoR
3 Ответов
1638 Просмотров
Последний ответ Август 26, 2012, 20:20:21
от DarWiM
1 Ответов
1330 Просмотров
Последний ответ Декабрь 18, 2014, 15:35:43
от inververs
3 Ответов
1606 Просмотров
Последний ответ Май 09, 2015, 16:22:03
от alex33
3 Ответов
896 Просмотров
Последний ответ Февраль 21, 2016, 09:50:33
от sngr
3 Ответов
905 Просмотров
Последний ответ Март 08, 2016, 15:06:19
от inververs
1 Ответов
566 Просмотров
Последний ответ Июль 14, 2016, 09:45:56
от alex33
0 Ответов
608 Просмотров
Последний ответ Январь 11, 2017, 19:57:47
от Dessan