Avatar billede orca Nybegynder
21. februar 2002 - 20:29 Der er 5 kommentarer og
1 løsning

HTTP download af kilde

Hej. Jeg mangler en funktion til at hente kilden fra en given URL. Jeg har selv prøvet med en hjemmelavet version som bruger Win32 API kaldene InternetOpen osv fra wininet.dll. Dette virkede dog ikke da det frøs min applikation mens kilden blev hentet. Jeg har også prøvet med komponentet aspHTTP fra serverobjects.com men samme problem her.

Derfor søger jeg en metode som ikke fryser mit program, og skal kunne køres flere gange på samme tid uden problemer.

Mvh Mark
--
www.gameshots.dk
Avatar billede berg Nybegynder
21. februar 2002 - 21:14 #1
Den her bruger vist det du omtaler først, men burde virke:
http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=24465&lngWId=1
Avatar billede berg Nybegynder
21. februar 2002 - 21:16 #2
Avatar billede orca Nybegynder
21. februar 2002 - 22:19 #3
Koden jeg bruger er den fra øverste eksempel. Nederste eksempel virker nogenlunde, det fryser ikke programmet. Og ved at lave en array af Inet's kan jeg køre den flere gange, men jeg synes ikke at performance er helt i top... Jeg lader lige spm stå lidt, ellers får du nogle point.

Mvh Mark
--
www.gameshots.dk
Avatar billede jelzin101 Praktikant
21. februar 2002 - 22:40 #4
smid en inet control på og brug :

Private Sub GetPage(strUrl As String)
Dim b() As Byte
Inet1.Cancel
Inet1.Protocol = icHTTP
Inet1.URL = "http://www.exp.dk"
b() = Inet1.OpenURL(, icByteArray)
Open "c:\emp\emp.htm" For Binary Access Write As #1
Put #1, , b()
Close #1
End Sub
Avatar billede orca Nybegynder
21. februar 2002 - 22:42 #5
Jelzin -> Hvordan gør jeg hvis bare jeg vil have kilden ind i en Streng?
Avatar billede sjh Nybegynder
22. februar 2002 - 14:31 #6
'--------------------------------------------------- Form1 ---------------------------------------------------
Option Explicit

Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Long) As Integer

Dim Cancel_Download As Long

Function DownloadString(UrlFile As String) As String
Dim UrlInternetOpen As Long
Dim UrlInternetOpenUrl As Long
Dim UrlBuffer As String * 2048
Dim UrlBytes As Long
Dim UrlComplete As String

Cancel_Download = 0

  UrlInternetOpen = InternetOpen("Download String", 1, vbNullString, vbNullString, 0)
  UrlInternetOpenUrl = InternetOpenUrl(UrlInternetOpen, UrlFile, vbNullString, 0, &H80000000, 0)
    Do
      InternetReadFile UrlInternetOpenUrl, UrlBuffer, Len(UrlBuffer), UrlBytes
        If UrlBytes = 0 Or Cancel_Download = 1 Then Exit Do 'Cancel_Download
          UrlComplete = UrlComplete & Left$(UrlBuffer, UrlBytes)
        DownloadBytes Len(UrlComplete)  'Function DownloadBytes
      DoEvents
    Loop
  InternetCloseHandle UrlInternetOpenUrl
  InternetCloseHandle UrlInternetOpen

DownloadString = UrlComplete
End Function

Function CancelDownload()
  Cancel_Download = 1
End Function

Function DownloadBytes(Bytes As Long)
  Me.Caption = "Download: " & Bytes & " Bytes"
End Function




Private Sub Command1_Click()
  Call CancelDownload
End Sub

Private Sub Command2_Click()
  RichTextBox1.Text = DownloadString("http://www.eksperten.dk/spm/175966")
End Sub
'--------------------------------------------------- Form1 ---------------------------------------------------
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Capgemini Danmark A/S

AI/Data Engineer

Riskpoint A/S (Riskpoint Solutions Limited)

IT Business Analyst

Politiets Efterretningstjeneste

AI/ML udvikler i PET