Springen naar inhoud


- - - - -
VB6

Problemen Met Xmlhttp.



  • Log in a.u.b. om te beantwoorden
Er zijn 5 reacties in dit onderwerp

#1 Ludi

Ludi

    Professional Developer

  • Leden
  • PipPipPipPip
  • 357 berichten
    Laatst bezocht 22 okt 2019 22:48

Geplaatst op 17 september 2019 - 17:03

Op dit moment moet via xmlhttp een pdf bestand upload naar een site.
Voor de upload/PUT kan gestart worden moet er eerst een POST commando gegeven worden.


Visual Basic Code:

Postadata = .........(json format en persoonlijke data)

httpRequest.setRequestHeader "Authorization", "APIKey " & ApiKey
httpRequest.setRequestHeader "Application", "APPKey " & AppKey
httpRequest.setRequestHeader "Content-Type", "application/json"
httpRequest.send PostData

txtAnswer.Text = httpRequest.responseText



Ik krijg dan een transactieId terug en kan de pdf gaan op sturen. Nu lukt het verkrijgen van het transactionid
Maar nu het versturen dat gaat mis. Het volgende gebruikt ik.

Visual Basic Code:
httpRequest.Open "PUT", "https://api.signhost...i/transaction/" & TransId & "/file/Orderbevestiging.pdf", False

httpRequest.setRequestHeader "Authorization", "APIKey " & ApiKey
httpRequest.setRequestHeader "Application", "APPKey " & AppKey
httpRequest.setRequestHeader "Content-Type", "application/pdf"


Set adostream = New ADODB.Stream

adostream.Open
adostream.Type = adTypeBinary
adostream.LoadFromFile strFile

filebytes = adostream.Read

LenContent = adostream.Size

adostream.Close

httpRequest.Open "PUT", "https://api.signhost...i/transaction/" & TransId & "/file/Orderbevestiging.pdf", False
httpRequest.setRequestHeader "Content-Type", "application/pdf" '"application/pdf"
httpRequest.setRequestHeader "Content-length", LenContent

httpRequest.send filebytes



Maar helaas dit lukt niet. De gene naar wie ik het toe moet sturen is niet bekend met VB6 en daar kan ik niet terecht.


Ludi

#2 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 691 berichten
    Laatst bezocht vandaag, 13:35
  • LocatieMechelen (BE)

Geplaatst op 22 september 2019 - 11:29

Volgens mij moet je  httprequest.open zonder html tags uitvoeren
Yep: https://www.tek-tips...cfm?qid=1654771 je url moet vrij zijn van html tags


Forum is aan't kutten :(

Wat krijg je terug van foutmelding? Ik vermoed dat je 2de stream word geblokkeerd om dat je niet inlogd, doe die 2de stream weg
zoiets bvb
Visual Basic Code:
httpRequest.Open "PUT", "https://api.signhost...i/transaction/" & TransId & "/file/Orderbevestiging.pdf", False

httpRequest.setRequestHeader "Authorization", "APIKey " & ApiKey
httpRequest.setRequestHeader "Application", "APPKey " & AppKey
httpRequest.setRequestHeader "Content-Type", "application/pdf"

Set adostream = New ADODB.Stream
adostream.Open
adostream.Type = adTypeBinary
adostream.LoadFromFile strFile

httpRequest.setRequestHeader "Content-length", adostream.Size
'-headers altijd zetten voor je iets zend natuurlijk
httpRequest.send = adostream.Read

adostream.Close
adostream=nothing
httprequest.close



Vraagje: waarom anno 2019 nog met vb6 werken?

Veranderd door Damic, 23 september 2019 - 19:54.


#3 Ludi

Ludi

    Professional Developer

  • Leden
  • PipPipPipPip
  • 357 berichten
    Laatst bezocht 22 okt 2019 22:48

Geplaatst op 23 september 2019 - 19:04

Het probleem is dat ik geen foutmeldng terug krijg. Ik weet dat er meerdere bestanden zijn maar die zie ik nog niet.

Waarom VB6, de klant wil geen extra geld uitgeven aan nieuwe software zoals vb.net of cSharp met of zonder WPF..

Jou code ga ik bekijken/testen en ik kom hier op terug.

En trouwens bijna al onze klanten werken nog met VB6 en denk dat je schikt hoeveel bedrijven er nog met VB6 werken.

#4 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 691 berichten
    Laatst bezocht vandaag, 13:35
  • LocatieMechelen (BE)

Geplaatst op 23 september 2019 - 19:46

Ook niet in de logs bij de hoster?

Ow zien juist dat er nog een mogelijk fout in mijn code zit. setrequestheader moet altijd voor send staan natuurlijk :) dus lijn 14 moet voor lijn 12 staan.

#5 Ludi

Ludi

    Professional Developer

  • Leden
  • PipPipPipPip
  • 357 berichten
    Laatst bezocht 22 okt 2019 22:48

Geplaatst op 23 september 2019 - 19:51

Ik kan hier pas morgen op antwoorden omdat ik op mijn systeem geen VB6 heb.

#6 Ludi

Ludi

    Professional Developer

  • Leden
  • PipPipPipPip
  • 357 berichten
    Laatst bezocht 22 okt 2019 22:48

Geplaatst op 26 september 2019 - 16:44

De code die je hebt opgestuurd en de code die ik hierboven heb geplaatst zitten er allebei heel dicht bij. Tussen de opdrachten moet op meerdere plaatsen 'Doevents' en sleep 250. In Visueel basic noemen ze dat
ook wel Asynchronous maar dat werkt niet zo goed in VB6. En als je dit helemaal gedaan hebt dan mag de fullpathname geen rare karakters bevatten.

Bedankt voor het meedenken.





Ook met taq VB6 voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[VB6] Untitled 1

Met dank aan J├╝rgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)