forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   PureBasic (http://forum.boolean.name/forumdisplay.php?f=90)
-   -   WebGadget: ошибка сценария (http://forum.boolean.name/showthread.php?t=19615)

Izunad 04.01.2015 19:30

WebGadget: ошибка сценария
 
http://clip2net.com/s/39SHDhv
Как избавится от предупреждения в WebGadget?
И еще такая проблема

Код:

InitNetwork()
Connection=OpenNetworkConnection("zkillboard.com",80)
SendNetworkString(Connection,"GET /character/93989061/ HTTP/1.1"+#CRLF$+"Host: zkillboard.com"+#CRLF$+"Connection: Close"+#CRLF$+#CRLF$)

Repeat
  If NetworkClientEvent(Connection)=#PB_NetworkEvent_Data
    GlobalSize=0:BufferSize=0:GlobalBuffer=AllocateMemory(4096):RepeatBreak=0
    Repeat
      RepeatBreak=RepeatBreak+1
      Buffer=AllocateMemory(4096):BufferSize=ReceiveNetworkData(Connection,Buffer,4096)
      If BufferSize>0
        GlobalSize=GlobalSize+BufferSize
        GlobalBuffer=ReAllocateMemory(GlobalBuffer,GlobalSize)
        CopyMemory(Buffer,GlobalBuffer+(GlobalSize-BufferSize),BufferSize)
      Else
        Break
      EndIf
      FreeMemory(Buffer)
    Until RepeatBreak>20
    Text$=PeekS(GlobalBuffer,GlobalSize)
    Debug Text$
    Break
  EndIf
ForEver

Отправляю запрос сайту, он мне говорит мол страница перенесена
Код:

HTTP/1.1 301 Moved Permanently
Date: Sun, 04 Jan 2015 15:39:38 GMT
Server: Apache
Location: https://zkillboard.com/character/93989061/
Vary: Accept-Encoding
Content-Length: 250
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://zkillboard.com/character/93989061/">here</a>.</p>
</body></html>

Перенесена, ну и ладно. Вроде как не ошибка. А дальше то как действовать? Как мне добраться до нужной мне страницы?
Естественно браузер знает как это сделать, но мне это мало годится, т.к. браузер тратит много времени чтобы прочесть страницу.

Izunad 05.01.2015 17:31

Ответ: WebGadget: ошибка сценария
 
Нашел как отключить уведомления
Код:

myBrowser.IWebBrowser2 = GetWindowLong_(GadgetID(3), #GWL_USERDATA)
myBrowser\put_Silent(#True)


Пётр 06.01.2015 19:24

Ответ: WebGadget: ошибка сценария
 
Цитата:

Сообщение от Izunad (Сообщение 291325)
А дальше то как действовать? Как мне добраться до нужной мне страницы?

Получив ответ с кодом 301 нужно перейти по адресу в поле Location.
Правда, для этого потребуется поддержка шифрованного соединения.

Izunad 09.01.2015 01:13

Ответ: WebGadget: ошибка сценария
 
TargetEVE
Готово. Тем кто играет в EVE Online, может быть интересно.
Программа не нарушает правила CCP, создана для быстрого доступа к информации по персонажам в локале.

Izunad 27.01.2015 06:41

Ответ: WebGadget: ошибка сценария
 
Хороший пример на данную тему. Процедура загружает код страницы в память. Не учить нас делать переход 301 Moved Permanently, но помогает избежать большинство таких проблем.
Код:

Procedure.l DownloadToMem(URL.s, *Buff, ramsize.l)
  Protected agent.s, hInet.l, hData.l, Bytes.l
 
  agent = "IE 6.0"
  hInet = InternetOpen_( @agent.s,0,0,0,0 )
  hData = InternetOpenUrl_( hInet, @URL.s, "", 0, $8000000, 0 )
 
  If hData > 0
    InternetReadFile_ ( hData, *Buff, ramsize, @Bytes );Шапка страницы- бежим дальше
    InternetReadFile_ ( hData, *Buff, ramsize, @Bytes );Все еще шапка страницы- дальше
    InternetReadFile_ ( hData, *Buff, ramsize, @Bytes );Вот оно
 Else
    Bytes = -1
 EndIf
  InternetCloseHandle_(hInet)
  InternetCloseHandle_(hData)
 
  ProcedureReturn Bytes
EndProcedure
 
*Buff = AllocateMemory(100000)
 
If *Buff
  Size=DownloadToMem("https://zkillboard.com/character/93989061/", *Buff, 100000)
  If Size>0
    SetClipboardText(PeekS(*Buff, Size,#PB_UTF8))
  EndIf
EndIf

Если у вас не получилось, то проблема может быть в кодировке текста
Не забываем смотреть формат загружаемого текста
Это может быть Unicode и прочее.


Часовой пояс GMT +4, время: 11:52.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot