Page 1 of 3 123 LastLast
Results 1 to 40 of 87

Thread: Winsock: Making HTTP POST/GET Requests

  1. #1

    Thread Starter
    VBA Nutter visualAd's Avatar
    Join Date
    Apr 2002
    Location
    Ickenham, UK
    Posts
    4,906

    Winsock: Making HTTP POST/GET Requests

    Introduction

    A question often asked is how to use Visual Basic to submit information to server side web scripts. Such as form variables. This small demonstration application shows how to accomplish this with the use of VB6 and the WinSock control.

    In order to add the Winsock Control to your VB6 application, right click on the tool box, select components from the menu and check the box "Microsoft Winsock Control".

    A Bit about HTTP

    The Winsock control enables you to establish a connection to another computer using either TCP / UDP and transfer data over that connection. HTTP (Hypertext Transfer Protocol) is used to request and send data to web resources and it is up to the programmer to construct the HTTP request and parse the response.

    There are two types of HTTP request, a POST request and a GET request. A POST request is used to send data to the server resource and a GET request is used to retrieve data from the server.

    Data can also be passed to the server resource by means of a query string in both GET and POST requests. The query string is appended to the end of a URL in the form:

    [http://www.domain.com/resource.php?variable1=value&variable2=value



    Using the Demo Application

    The demo application allows you to enter a URL and choose between a HTTP GET and HTTP POST request. The variable's section gives you the opportunity to send additional variables along with the HTTP request.

    Variables
    If you choose the GET method these variables will be added to the URL's query string. If you choose a POST request, they will be put into the body of the HTTP request.

    Headers
    The headers section allows you to add some custom HTTP headers, such as a user agent and cookies.

    Sending the Request
    Once the request has been sent you will be able to see the exact HTTP request sent to the server. After a short time you will also see the HTTP response.

    You can test the application using the following URL:

    http://adam.codedv.com/examples/post_dump.php

    Attached Images Attached Images  
    Attached Files Attached Files
    Last edited by visualAd; May 2nd, 2005 at 05:44 AM.
    PHP || MySql || Apache || Get Firefox || OpenOffice.org || Click || Slap ILMV || 1337 c0d || GotoMyPc For FREE! Part 1, Part 2

    | PHP Session --> Database Handler * Custom Error Handler * Installing PHP * HTML Form Handler * PHP 5 OOP * Using XML * Ajax * Xslt | VB6 Winsock - HTTP POST / GET * Winsock - HTTP File Upload

    Latest quote: crptcblade - VB6 executables can't be decompiled, only disassembled. And the disassembled code is even less useful than I am.

    Random VisualAd: Blog - Latest Post: When the Internet becomes Electricity!!


    Spread happiness and joy. Rate good posts.

  2. #2
    Frenzied Member
    Join Date
    Apr 2005
    Posts
    1,907

    Re: Winsock: Making HTTP POST/GET Requests

    Many thanks for sharing this cool program with us. I tried to use your code with one of my project with involves loading url from listbox in submission variables value textbox. So i added a listbox that get populated from mysql db. I added a button so that on click it starts looping through listbox item and take each item and put it in submission variables value textbox and click send. What ever i do i can make this working with loop . I encluded the code for my click button but it never works. Could u help me fix this problem.thanks


    VB Code:
    1. ' transfer all urls i loop
    2. Private Sub Command1_Click()
    3.  
    4. Dim i As Long
    5. For i = 0 To List2.ListCount - 1
    6.  
    7. List2.Selected(i) = True
    8. txtVariableValue(0) = List2.List(i)
    9. 'MsgBox List2.List(i)
    10. cmdSend_Click
    11. Next
    12.  
    13. End Sub

  3. #3

    Thread Starter
    VBA Nutter visualAd's Avatar
    Join Date
    Apr 2002
    Location
    Ickenham, UK
    Posts
    4,906

    Re: Winsock: Making HTTP POST/GET Requests

    I am sorry, you are going to have to make yourself clearer.
    PHP || MySql || Apache || Get Firefox || OpenOffice.org || Click || Slap ILMV || 1337 c0d || GotoMyPc For FREE! Part 1, Part 2

    | PHP Session --> Database Handler * Custom Error Handler * Installing PHP * HTML Form Handler * PHP 5 OOP * Using XML * Ajax * Xslt | VB6 Winsock - HTTP POST / GET * Winsock - HTTP File Upload

    Latest quote: crptcblade - VB6 executables can't be decompiled, only disassembled. And the disassembled code is even less useful than I am.

    Random VisualAd: Blog - Latest Post: When the Internet becomes Electricity!!


    Spread happiness and joy. Rate good posts.

  4. #4
    Frenzied Member
    Join Date
    Apr 2005
    Posts
    1,907

    Re: Winsock: Making HTTP POST/GET Requests

    Quote Originally Posted by visualAd
    I am sorry, you are going to have to make yourself clearer.
    This is what i want to do :


  5. #5
    Addicted Member
    Join Date
    Feb 2006
    Location
    The Sea of Tranquility
    Posts
    252

    Re: Winsock: Making HTTP POST/GET Requests

    You can also post to webpages using the inet control

    Code:
    Private Sub cmdAdd_Click()
    Dim strUrl As String
        Dim strFormData As String
        strUrl = ""
    
        strFormData = "sql=SELECT  FROM  WHERE "
    
    
       
        
        Inet1.URL = strUrl
        Inet1.Execute strUrl, "post", strFormData, "Content-Type: application/x-www-form-urlencoded"
    End Sub
    
    Private Sub Inet1_StateChanged(ByVal State As Integer)
        
        
        
        Select Case State
        
        Case icConnecting
        Case icConnected
        Case icRequesting
        Case icRequestSent
        Case icReceivingResponse
        Case icResponseReceived
        
        Case icResponseCompleted
            
            Dim strTemp As String
            strTemp = Inet1.GetChunk(128)
        
            strTemp = Trim(strTemp)
            If InStr(1, strTemp, "0:") Then
                MsgBox "error: " & strTemp
            Else
                MsgBox strTemp
            End If
        
        End Select
    
    End Sub
    Where you have a post variable called sql, and obviously an online database set up. This example works fantastic with a php script i have on a server.

    Rich

  6. #6
    Frenzied Member
    Join Date
    Apr 2005
    Posts
    1,907

    Re: Winsock: Making HTTP POST/GET Requests

    Rich thank for u reply. could u be more specific how to use the code like what controles i need and ...
    Your code does not post back the result of post request and also taking value from sql directly will not do what i want. Since i want to execute a list of values and sql will not be able to fetch them one by one .
    Therefore i populate the values in a listbox first then i want to the process them one by one so i be happy if u show me how that can be done either your code or visualAd code.

    My main goal is to be able to do the following :

    In textbox1 where i put the post url such as : http://localhost/scripts/script.php

    then 2 small text box(textbox1 and textbox2) one for the value i want to send to my script and and value name and a listbox,textbox4 and submit button.

    I want to be able to type values in textbox1 and textbox 2 and click submit and the result get output in my textbox4.Also i want to be able to automate the process so instead of me having to type value to textbox3 which holds value to be passed to post , Instad i click on button and the program takes first item of listbox and put it in textbox3 and output the result in textbox4 and with that finishes do the same for the rest of items in listbox. The only part that i could not make it work in virutal ad project is to make it automated and so far i am not getting any help fixing it.I hope some one be kind of enough to help me here.Thanks

    Note the pic above shows what i want.
    Last edited by tony007; May 7th, 2006 at 12:30 AM.

  7. #7
    Addicted Member
    Join Date
    Feb 2006
    Location
    The Sea of Tranquility
    Posts
    252

    Re: Winsock: Making HTTP POST/GET Requests

    You need to add the microsoft internet controls to your project. Well basically you post to the script and it will echo the result to the screen. This is where the getchunk method comes in, it gets the echo that the php script produces. As for the inputs, make the url = to textbox1. and sql or what ever your post variable is called = to textbox2. then stick the cmdadd code into your submit button.

    Yes your best bet would be to return all your values at once to your VB program and store them in an array. Then process them one by one.

    Rich

  8. #8
    Frenzied Member
    Join Date
    Apr 2005
    Posts
    1,907

    Re: Winsock: Making HTTP POST/GET Requests

    Quote Originally Posted by Rich2189
    You need to add the microsoft internet controls to your project. Well basically you post to the script and it will echo the result to the screen. This is where the getchunk method comes in, it gets the echo that the php script produces. As for the inputs, make the url = to textbox1. and sql or what ever your post variable is called = to textbox2. then stick the cmdadd code into your submit button.

    Yes your best bet would be to return all your values at once to your VB program and store them in an array. Then process them one by one.

    Rich
    Could u tell me how to display what ever the post returns back to me too. This only shows me :

    <form method=post action="myscript.php">
    Link: <nput type ="tet" name="link2" size="35">&nbsp;
    <input type="submit" value="c

    The above infor is useless. For example if i want to make a post to php script i need to send value name and value data and i will get a result out that ok your file is submitted. But your code does not send value name and it only sends value data!! and also no result out in textbox!! could u show me how i can get the script output in a textbox.Thanks

  9. #9
    Junior Member
    Join Date
    May 2006
    Posts
    24

    Re: Winsock: Making HTTP POST/GET Requests

    Quote Originally Posted by visualAd
    Introduction

    A question often asked is how to use Visual Basic to submit information to server side web scripts. Such as form variables. This small demonstration application shows how to accomplish this with the use of VB6 and the WinSock control.

    In order to add the Winsock Control to your VB6 application, right click on the tool box, select components from the menu and check the box "Microsoft Winsock Control".

    A Bit about HTTP

    The Winsock control enables you to establish a connection to another computer using either TCP / UDP and transfer data over that connection. HTTP (Hypertext Transfer Protocol) is used to request and send data to web resources and it is up to the programmer to construct the HTTP request and parse the response.

    There are two types of HTTP request, a POST request and a GET request. A POST request is used to send data to the server resource and a GET request is used to retrieve data from the server.

    Data can also be passed to the server resource by means of a query string in both GET and POST requests. The query string is appended to the end of a URL in the form:

    [http://www.domain.com/resource.php?v...ariable2=value



    Using the Demo Application

    The demo application allows you to enter a URL and choose between a HTTP GET and HTTP POST request. The variable's section gives you the opportunity to send additional variables along with the HTTP request.

    Variables
    If you choose the GET method these variables will be added to the URL's query string. If you choose a POST request, they will be put into the body of the HTTP request.

    Headers
    The headers section allows you to add some custom HTTP headers, such as a user agent and cookies.

    Sending the Request
    Once the request has been sent you will be able to see the exact HTTP request sent to the server. After a short time you will also see the HTTP response.

    You can test the application using the following URL:

    http://adam.codedv.com/examples/post_dump.php

    It doesnt work on https sites. How can I tweak it to work on them as well?

  10. #10
    New Member
    Join Date
    Nov 2006
    Posts
    9

    Re: Winsock: Making HTTP POST/GET Requests

    HTTPS means HyperText Transfer Protocol Secure.
    That is HTTP encrypted with SSL.
    Due to my little knowledge i suggest you to read the Wikipedia article about HTTPS.
    There you will probably find a link to the RFC or other ressources which may help you.

    GERMAN: (with a graphic)
    http://de.wikipedia.org/wiki/HTTPS

    ENGLISH: (without any graphic)
    http://en.wikipedia.org/wiki/HTTPS
    Last edited by DrGonzo; Nov 1st, 2006 at 09:51 AM.

  11. #11

    Re: Winsock: Making HTTP POST/GET Requests

    Dear sir,
    I was trying to post this form

    https://login.yahoo.com/config/login?
    to automatically login into the yahoo account using this project, but it gave
    Invalid protocol schema error.
    Can you please help me out with this.
    Regards
    Sumit Ghosh
    Chief Software Architect
    Globussoft
    www.globussoft.net

  12. #12
    New Member
    Join Date
    Nov 2006
    Posts
    9

    Re: Winsock: Making HTTP POST/GET Requests

    I think because you want to access a site using HTTPS (HTTP encrypted by SSL) your program must have also implemented SSL to encrypt your HTML-data and for further communication between the client and the server.


  13. #13
    Lively Member feneck's Avatar
    Join Date
    Mar 2007
    Location
    Australia, Queensland, Gympie
    Posts
    85

    Re: Winsock: Making HTTP POST/GET Requests

    Hello. Would this program be able to work for MySpace?

    REMEMBER TO RATE

  14. #14
    Lively Member feneck's Avatar
    Join Date
    Mar 2007
    Location
    Australia, Queensland, Gympie
    Posts
    85

    Re: Winsock: Making HTTP POST/GET Requests

    Oh, dont worry about my last comment, i have played with it and have got it to work. thank you all very much!!!!!!!!!!

    REMEMBER TO RATE

  15. #15
    New Member
    Join Date
    May 2007
    Posts
    15

    Re: Winsock: Making HTTP POST/GET Requests

    I am trying to automatically download data from a site. In order to access some pages of the site i need to login. To login i have to submit user and password via POST. Using this form i have been able to properly login the site, setting my user and passrowd. Now how can i access the other pages of the site?
    This is the response to my login, as appears in the Winsock Form Submission:

    HTTP/1.1 302 Found
    Date: Sun, 27 May 2007 11:39:20 GMT
    Server: Apache/2.0.58 (Unix) mod_ssl/2.0.58 OpenSSL/0.9.7i
    X-Powered-By: PHP/5.1.4
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Set-Cookie: PHPSESSID=824066ab9840f2aebe9f46b402a0c5df; path=/
    Set-Cookie: cookielogin=%2C3183; expires=Mon, 26-May-2008 11:39:20 GMT
    Location: club.php
    Vary: Accept-Encoding,User-Agent
    Content-Length: 0
    Connection: close

    The login is successful, but now i don't know how to download data from example from the page club.php. The name of the site is: www.rugbymania.net

    Thank you

  16. #16
    New Member
    Join Date
    May 2007
    Posts
    9

    Re: Winsock: Making HTTP POST/GET Requests

    Jack i have other problem with do a keepalive connection...

    Once I pass to the proxy the petition Post that I have to send to the proxy so that I don't close the connection, because I want to continue passing data, you know something about this

  17. #17
    New Member
    Join Date
    May 2007
    Posts
    15

    Re: Winsock: Making HTTP POST/GET Requests

    i'm sorry but, i didn't understand what you mean.
    Could explain that again, please?

  18. #18
    New Member
    Join Date
    May 2007
    Posts
    9

    Re: Winsock: Making HTTP POST/GET Requests

    I want to establish a connection among 2 programs using a single petition POST, how i could make this... that the beginning of the connection is a petition POST..

  19. #19
    New Member
    Join Date
    Jun 2007
    Posts
    2

    Re: Winsock: Making HTTP POST/GET Requests

    Hi people,

    I already try the code and modified to fit my requirements.

    It work very well thanks to visualAd, but i have a little problem with the control winsockt, i duno how to ensure the control propely connect or disconect.

    It works great, but at some point the control dosent disconect or conecct and the code hang up, into an infinite cilce, in part 1 or part 2 (listed in the code above)

    i already try a lot of things, and of course i have 2 event's that change the flags for conected or disconected, on sckts events.

    i hope somebody can help to figure out this issue.

    Sorry for my very bad english.

    this is part of the code:

    lngIndice = 1
    While lngIndice <= lngCantidadArchivos

    ' if the conection is un use, wait until disconected
    ' (part 1 when the control don't disconnect propely)
    If Not mbolSckConectado Then

    ' Here i set variables for teh file
    strNombreArchivo = arsNumerosOV(lngIndice) & ".PDF"
    strArchivoPDF = strDirectorio & strNombreArchivo

    ' here i get the contents of file
    strContenidoArchivo=dfObtenerContenidoArchivo(strArchivoPDF)

    ' here i biuld the HTTP request
    strRequisicionHTTP = dfHTTPRequest(strContenidoArchivo, udtURLDestino, strNombreArchivo, strNombreArchivo, strTipoMIME)

    ' here i conecct to the server, and wait until conected
    ' (part 2 when the control don't connect propely)
    sckSitioWeb.Connect
    While Not mbolSckConectado
    DoEvents
    Wend

    ' here i send the HTTP request
    sckSitioWeb.SendData strRequisicionHTTP

    ' here i susspend the program ejecution 2 sec
    dfSuspenderEjecucion 2

    End If

    Wend

  20. #20
    New Member
    Join Date
    Sep 2004
    Posts
    13

    Re: Winsock: Making HTTP POST/GET Requests

    EDITED: I fixed it

    Thank you..
    Last edited by Dustcrazy; Nov 25th, 2007 at 10:22 PM.

  21. #21
    New Member
    Join Date
    Jun 2008
    Posts
    2

    Exclamation Re: Winsock: Making HTTP POST/GET Requests

    Hi. I'm new to this forum and using Visual Basic. I'm currently using Visual Basic 6.0 to write my applications. I understood this small tutorial in this thread really well, but have a few questions. I'd like to know how to request a site's full HTML source code for instance www.yahoo.com without it returning only little bits of the code.


    I did try requesting the page using Inet and Winsock, but for some reason it only returns half of the source code and not the full page. Is there anyway to retrieve the whole HTML source?

    Any reply would be gladdy appreciated. Thanks!

  22. #22

    Thread Starter
    VBA Nutter visualAd's Avatar
    Join Date
    Apr 2002
    Location
    Ickenham, UK
    Posts
    4,906

    Re: Winsock: Making HTTP POST/GET Requests

    The problem is caused by the maximum string size in VB6. If it exceeds 32KB it is truncated; I just viewed the Yahoo source coed and it appears that it is about 50KB.

    If you want to be able to use larger strings then you need to use text stream and load the data into either a rich text box or a file.
    PHP || MySql || Apache || Get Firefox || OpenOffice.org || Click || Slap ILMV || 1337 c0d || GotoMyPc For FREE! Part 1, Part 2

    | PHP Session --> Database Handler * Custom Error Handler * Installing PHP * HTML Form Handler * PHP 5 OOP * Using XML * Ajax * Xslt | VB6 Winsock - HTTP POST / GET * Winsock - HTTP File Upload

    Latest quote: crptcblade - VB6 executables can't be decompiled, only disassembled. And the disassembled code is even less useful than I am.

    Random VisualAd: Blog - Latest Post: When the Internet becomes Electricity!!


    Spread happiness and joy. Rate good posts.

  23. #23
    New Member
    Join Date
    Jun 2008
    Posts
    5

    Re: Winsock: Making HTTP POST/GET Requests

    Hello, as requested, I'm trying to find a simple form that will upload a file to a server using a username and password. If I can hard code the specifics and click one button, that would be great. The current form i'm using works, however, when we set up the server to use credentials, we keep gettings erros. So i'm searching for a smipler way to accomplish this. I will include the current code.



    Error that is coming from the form:

    "The Server returned an invalid or unrecognized response."




    Error coming from the server side is:


    "Invalid method in request –-Xu02=$"





    (I omitted username, password, and server location)

    Code:
    ----------------------------FORM CODE-----------------------------------
    
    
    
    
    Private Sub Command1_Click()
    
    Dim iArray
    
    'Set your filename to upload here
    iArray = Array("C:\Documents and Settings\rdstephens\Desktop\Upload.txt")
    
    'Set path to php upload script here
    Text1.Text = UploadFiles(iArray, "--------------Server Address--------------", Text2.Text, "******", "******")
    
    End Sub
    
    
    
    
    
    
    
    
    
    ----------------------------SCRIPT CODE------------------------------------
    
    
    
    'You need reference to Microsoft WinHTTP Services 5.0 or 5.1 to use this example
    
    'Credit to Joseph Z. Xu ()
    'Modified by Mohd Idzuan Alias () August 18, 2004
    'Modified by Kung Fu Panda, Wizard of Warcraft, and The Intern, June 19, 2008
    
    
    Dim WinHttpReq As WinHttp.WinHttpRequest
    Const HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0
    Const HTTPREQUEST_SETCREDENTIALS_FOR_PROXY = 1
    Const BOUNDARY = "Xu02=$"
    Const HEADER = "--Xu02=$"
    Const FOOTER = "--Xu02=$--"
    
    
    Function UploadFiles(strFileName As Variant, strURL As String, Optional postVar As  String, _ Optional strUserName As String, Optional strPassword As String) As String
    
    Dim fname As String
    Dim strFile As String
    Dim strBody As String
    Dim aPostBody() As Byte
    Dim nFile As Integer
    
    Set WinHttpReq = New WinHttpRequest
    
    ' Turn error trapping on
    On Error GoTo SaveErrHandler
    
    ' Assemble an HTTP request.
    strURL = strURL & "?slots=" & CStr(UBound(strFileName) + 1) & "&" & postVar
    WinHttpReq.Open "POST", strURL, False
    Debug.Print strURL
    
    If strUserName <> "" And strPassword <> "" Then
    ' Set the user name and password.
    WinHttpReq.SetCredentials strUserName, strPassword, _
    HTTPREQUEST_SETCREDENTIALS_FOR_SERVER
    End If
    
    '-------------------------- Becareful not to mingle too much here -----------------------------------
    
    ' Set the header
    WinHttpReq.SetRequestHeader "Content-Type", "multipart/form-data; boundary=" & BOUNDARY
    
    ' Assemble the body
    strBody = HEADER                        ' Starting tag
    
    For i = 0 To UBound(strFileName)
    
    ' Grap the name
    fname = strFileName(i)
    
    ' Grap the file
    strFile = getFile(fname)
    
    strBody = strBody & vbCrLf & "Content-Disposition: form-data; name=""" & "name" & """; filename=""" & fname & """ " & vbCrLf & "Content-type: file" & _
    vbCrLf & vbCrLf & strFile & vbCrLf
    
    If i < UBound(strFileName) Then
    strBody = strBody & "--Xu02=$" ' This is boundary tag between two files
    End If
    strFile = ""
    
    Next i
    
    strBody = strBody & FOOTER             ' Ending tag
    '----------------------------------------------------------------------------------------------------
    
    ' Because of binary zeros, post body has to convert to byte array
    aPostBody = StrConv(strBody, vbFromUnicode)
    
    ' Send the HTTP Request.
    WinHttpReq.Send aPostBody
    
    ' Display the status code and response headers.
    'UploadFiles = WinHttpReq.GetAllResponseHeaders & "  " & WinHttpReq.ResponseText
    UploadFiles = WinHttpReq.ResponseText
    
    Set WinHttpReq = Nothing
    
    Exit Function
    
    SaveErrHandler:
    UploadFiles = Err.Description
    
    Set WinHttpReq = Nothing
    
    End Function
    Function getFile(strFileName As String) As String
    
    Dim strFile As String
    
    ' Grap the file
    nFile = FreeFile
    Open strFileName For Binary As #nFile
    strFile = String(LOF(nFile), " ")
    Get #nFile, , strFile
    Close #nFile
    
    getFile = strFile
    
    End Function

  24. #24

    Thread Starter
    VBA Nutter visualAd's Avatar
    Join Date
    Apr 2002
    Location
    Ickenham, UK
    Posts
    4,906

    Re: Winsock: Making HTTP POST/GET Requests

    HTTP authentication is quite simple. A normal request is made to the HTTP server and it will respond with a 401 unauthorized response. The response will contain a WWW-Authenticate header which will include the authentication scheme supported and the name of the realm.

    Code:
    HTTP/1.1 401 Unauthorized
    WWW-Authenticate: Basic realm="Authorized Users"
    The client must then make a new request an authorization header. This head contains the name of the authentication scheme and a base64 encoded user name and password in the form:

    Code:
    ' null character to separate username and password.
    authorization = FunctionToBase64Encode(username & ":" & password)
    The second request may look something like this:
    Code:
    GET /protected.html HTTP/1.0
    Host: www.example.com
    Authorization: Basic dmlzdWFsYWQ6c2VjcmV0
    You can pick some source code up for a Base64 encoder / decoder easily from a Google search. Other authentication schemes include digest and NTLM. Digest is relatively simple to implement however, NTLM is largely undocumented and insecure for use over the Internet.
    PHP || MySql || Apache || Get Firefox || OpenOffice.org || Click || Slap ILMV || 1337 c0d || GotoMyPc For FREE! Part 1, Part 2

    | PHP Session --> Database Handler * Custom Error Handler * Installing PHP * HTML Form Handler * PHP 5 OOP * Using XML * Ajax * Xslt | VB6 Winsock - HTTP POST / GET * Winsock - HTTP File Upload

    Latest quote: crptcblade - VB6 executables can't be decompiled, only disassembled. And the disassembled code is even less useful than I am.

    Random VisualAd: Blog - Latest Post: When the Internet becomes Electricity!!


    Spread happiness and joy. Rate good posts.

  25. #25
    New Member
    Join Date
    Jun 2008
    Posts
    5

    Re: Winsock: Making HTTP POST/GET Requests

    I sort of understand what you are saying, but not sure I could implement that into a working form. So if the above code won't work, do you know of a simpler program that I can input the server, username, and password, that will work?

  26. #26

    Thread Starter
    VBA Nutter visualAd's Avatar
    Join Date
    Apr 2002
    Location
    Ickenham, UK
    Posts
    4,906

    Re: Winsock: Making HTTP POST/GET Requests

    Quote Originally Posted by rich_19
    I sort of understand what you are saying, but not sure I could implement that into a working form. So if the above code won't work, do you know of a simpler program that I can input the server, username, and password, that will work?
    That is simple , you just need to modify the application to include the extra headers.
    PHP || MySql || Apache || Get Firefox || OpenOffice.org || Click || Slap ILMV || 1337 c0d || GotoMyPc For FREE! Part 1, Part 2

    | PHP Session --> Database Handler * Custom Error Handler * Installing PHP * HTML Form Handler * PHP 5 OOP * Using XML * Ajax * Xslt | VB6 Winsock - HTTP POST / GET * Winsock - HTTP File Upload

    Latest quote: crptcblade - VB6 executables can't be decompiled, only disassembled. And the disassembled code is even less useful than I am.

    Random VisualAd: Blog - Latest Post: When the Internet becomes Electricity!!


    Spread happiness and joy. Rate good posts.

  27. #27
    New Member
    Join Date
    Jun 2008
    Posts
    2

    Re: Winsock: Making HTTP POST/GET Requests

    Quote Originally Posted by visualAd
    The problem is caused by the maximum string size in VB6. If it exceeds 32KB it is truncated; I just viewed the Yahoo source coed and it appears that it is about 50KB.

    If you want to be able to use larger strings then you need to use text stream and load the data into either a rich text box or a file.

    Hey sorry, I got so lost in the code that I forgot to come back and say thanks. I loaded the data into the rich text box and it worked out perfectly. So ya, thanks.

  28. #28
    Banned
    Join Date
    Mar 2008
    Posts
    24

    Re: Winsock: Making HTTP POST/GET Requests

    How can i use Cookies
    I Mean i been done Login Packet Its workin HTTP
    now i want took cookies and replce and i can use other packet too with these cookies
    if someone know expln thanks

  29. #29

    Thread Starter
    VBA Nutter visualAd's Avatar
    Join Date
    Apr 2002
    Location
    Ickenham, UK
    Posts
    4,906

    Re: Winsock: Making HTTP POST/GET Requests

    You will see a Set-Cookie header in the HTTP response. The next request you make should contain the name and the value of the cookie in a cookie header.
    Code:
    Request:
    
    GET / HTTP/1.0
    
    Response:
    
    HTTP/1.0 200 OK
    Set-cookie: cookie1=value1; domain=www.example.com; path=/blah
    Set-Cookie: cookie2=value2; path=/
    
    Next Request:
    
    GET /blah/index.html HTTP/1.0
    Cookie: cookie1=value1; cookie2=value2
    PHP || MySql || Apache || Get Firefox || OpenOffice.org || Click || Slap ILMV || 1337 c0d || GotoMyPc For FREE! Part 1, Part 2

    | PHP Session --> Database Handler * Custom Error Handler * Installing PHP * HTML Form Handler * PHP 5 OOP * Using XML * Ajax * Xslt | VB6 Winsock - HTTP POST / GET * Winsock - HTTP File Upload

    Latest quote: crptcblade - VB6 executables can't be decompiled, only disassembled. And the disassembled code is even less useful than I am.

    Random VisualAd: Blog - Latest Post: When the Internet becomes Electricity!!


    Spread happiness and joy. Rate good posts.

  30. #30
    Hyperactive Member
    Join Date
    Aug 2008
    Posts
    353

    Re: Winsock: Making HTTP POST/GET Requests

    hi,well this is a great post but i got a question

    well when i do the operation with your tool i get the code,then i paste it to a text file and then rename it to .html.Then i open the file and i get the page i wanted and it says that im logged in (which is great ) and then automatically it takes me to my documents (which is not so important)

    Then i copied the code that your tool produced

    Code:
    http://www.testforum.org/login.php?username=batori&password=batori&autologin=on&login=Log%2Bin
    and i pasted it in here

    Code:
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    
    Private Sub Form_Load()
    
    Call ShellExecute(0&, vbNullString, "http://www.forum.org/login.php?username=batori&password=batori&autologin=on&login=Log%2Bin", vbNullString, vbNullString, vbNormalFocus)
    
    End Sub
    then my browser open and then i get the message that the specified account does not exist??? hmmmm

    I tought the reason could be the cookies...
    because after i login i must go automatically to a new thread and post the text into a REPLY THREAD and click SUBMIT automatically...
    Last edited by batori; Sep 11th, 2008 at 03:57 AM.

  31. #31

    Thread Starter
    VBA Nutter visualAd's Avatar
    Join Date
    Apr 2002
    Location
    Ickenham, UK
    Posts
    4,906

    Re: Winsock: Making HTTP POST/GET Requests

    I am not sure what you want to achieve but I if you had copied and pasted it, then surely the passwords wouldn't be different and the website would be the same . Do you want to post passwords to a web site on a public forum too?

    Anyhow, it looks like the error you are getting is caused by the fact that the account does not exist on the forum.
    PHP || MySql || Apache || Get Firefox || OpenOffice.org || Click || Slap ILMV || 1337 c0d || GotoMyPc For FREE! Part 1, Part 2

    | PHP Session --> Database Handler * Custom Error Handler * Installing PHP * HTML Form Handler * PHP 5 OOP * Using XML * Ajax * Xslt | VB6 Winsock - HTTP POST / GET * Winsock - HTTP File Upload

    Latest quote: crptcblade - VB6 executables can't be decompiled, only disassembled. And the disassembled code is even less useful than I am.

    Random VisualAd: Blog - Latest Post: When the Internet becomes Electricity!!


    Spread happiness and joy. Rate good posts.

  32. #32
    Hyperactive Member
    Join Date
    Aug 2008
    Posts
    353

    Re: Winsock: Making HTTP POST/GET Requests

    well, when i get this code :

    this is the request
    Code:
    POST /login.php HTTP/1.0
    Host: testforum.org
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 59
    
    username=batori&password=batori&autologin=on&login=Log%2Bin
    and i just used this in my app and i got the error that the account does not exists.i wanted to open this code in the url like i posted before.but it doesnt work
    Code:
    username=batori&password=batori&autologin=on&login=Log%2Bin
    but when i generated the code with your app...i pasted that in a html file and i opened it and i was successfully logged in...

    so now im askin..is this not woking in my case because i just tried to open that url
    Code:
    www.testforum.org/login.php?username=batori&password=batori&autologin=on&login=Log%2Bin
    instead of sending

    Code:
    POST /login.php HTTP/1.0
    Host: testforum.org
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 59
    
    username=batori&password=batori&autologin=on&login=Log%2Bin

  33. #33

    Thread Starter
    VBA Nutter visualAd's Avatar
    Join Date
    Apr 2002
    Location
    Ickenham, UK
    Posts
    4,906

    Re: Winsock: Making HTTP POST/GET Requests

    I suggest you read up a little on the HTTP protocol. The application I wrote shows you the HTTP request. It is a post request and the url encoded data is sent in the body of the HTTP request (as shown by the application).

    You cannot append the data to the end of a URL and expect it to work. Not only this, the sites you are using have two different forum packages that likely accept login information in a different format, so even if the above were possible, it would probably still fail.
    PHP || MySql || Apache || Get Firefox || OpenOffice.org || Click || Slap ILMV || 1337 c0d || GotoMyPc For FREE! Part 1, Part 2

    | PHP Session --> Database Handler * Custom Error Handler * Installing PHP * HTML Form Handler * PHP 5 OOP * Using XML * Ajax * Xslt | VB6 Winsock - HTTP POST / GET * Winsock - HTTP File Upload

    Latest quote: crptcblade - VB6 executables can't be decompiled, only disassembled. And the disassembled code is even less useful than I am.

    Random VisualAd: Blog - Latest Post: When the Internet becomes Electricity!!


    Spread happiness and joy. Rate good posts.

  34. #34
    Hyperactive Member
    Join Date
    Aug 2008
    Posts
    353

    Re: Winsock: Making HTTP POST/GET Requests

    ah well ok...becaus a friend managed to do something like that in delphi in a veery small piece od code...
    Code:
    http://www.vbforums.com/showthread.php?t=537443

  35. #35
    New Member
    Join Date
    Aug 2008
    Posts
    2

    Exclamation Re: Winsock: Making HTTP POST/GET Requests

    thanks sir 4 ur demo example...
    i leared too much from that
    altho it took almost 6 hrs to understand whole program
    bt fianlly got success in making a simple sending data by POST method.. same as i wanted

    now my doubts r as follows --

    1.in second text box i wana get Message..
    for that i need txt box to be of multiline
    but wen i post data with multiline property 'true' it started showing sum chr like %D%A etc.. also its behaviour is strange for sum keys like "",',%,& etc.... they doesnt get psoted in same manner.... wat php code sud be used to get them properly
    2. how much size of msg can b posted... means if i want 5mb text then will it support... or will crash?
    3. wat does (htmlspecialchars($name)) signifies in ur php file?
    4. i learned to use POST function using winsock .. bt can it also be possible using inet control... if yes than which one is btr?
    5. wat does ur following code mean for.. n to get decode these changes in php file (m nt concerning to decode in VB)

    Code:
    ' ' url encodes a string
    Function URLEncode(ByVal str As String) As String
            Dim intLen As Integer
            Dim X As Integer
            Dim curChar As Long
                    Dim newStr As String
                    intLen = Len(str)
            newStr = ""
                            For X = 1 To intLen
                curChar = Asc(Mid$(str, X, 1))
                
                If (curChar < 48 Or curChar > 57) And _
                    (curChar < 65 Or curChar > 90) And _
                    (curChar < 97 Or curChar > 122) Then
                                    newStr = newStr & "%" & Hex(curChar)
                Else
                    newStr = newStr & Chr(curChar)
                End If
            Next X
            
            URLEncode = newStr
    End Function
    hope u get all my doubts
    thx
    Last edited by indianeagle; Aug 29th, 2008 at 07:50 AM.

  36. #36
    New Member
    Join Date
    Aug 2008
    Posts
    2

    Re: Winsock: Making HTTP POST/GET Requests

    sorry 4 cretaing new post...
    it created by mistake
    and now m nt getting delete option
    Last edited by indianeagle; Aug 29th, 2008 at 07:55 AM.

  37. #37
    New Member
    Join Date
    Feb 2006
    Posts
    9

    Re: Winsock: Making HTTP POST/GET Requests

    ok but how do you submit a file as in the example here
    Sending the Request
    Once the request has been sent you will be able to see the exact HTTP request sent to the server. After a short time you will also see the HTTP response.

    You can test the application using the following URL:

    http://adam.codedv.com/examples/post_dump.php

    the page here shows a file input box that is file1
    useing the program and sampel source if you supply file1 with an path and file it shows as a varable that was included not as a file that was submited and is there a work around to this to simply submit a file from a url string?????

    i have been unabel to find anythign besides a web page that will work with

    <form action="/cgi-bin/upload.cgi" method="post" enctype="multipart/form-data">
    <input type="File" name="FILE1" size="20">
    <p>
    <input type="Submit" value="submit">
    </form>

  38. #38
    New Member
    Join Date
    Sep 2008
    Posts
    2

    Re: Winsock: Making HTTP POST/GET Requests

    Hi friends I have alike problem.

    what I want to do is I want to login a web page from my vb program
    and I don't know how to login. I am not the web master or owner of the site, just a member and I want to login from my vb form.

    I want to pass parameters my username and password.

    can somebody pls help me out. I need this badly.

    Thanks in advance.

    Kal
    Last edited by kal_leo@hotmail.com; Sep 24th, 2008 at 09:21 AM.

  39. #39

    Thread Starter
    VBA Nutter visualAd's Avatar
    Join Date
    Apr 2002
    Location
    Ickenham, UK
    Posts
    4,906

    Re: Winsock: Making HTTP POST/GET Requests

    Please start you own thread for support on issues not relating to the above program.
    PHP || MySql || Apache || Get Firefox || OpenOffice.org || Click || Slap ILMV || 1337 c0d || GotoMyPc For FREE! Part 1, Part 2

    | PHP Session --> Database Handler * Custom Error Handler * Installing PHP * HTML Form Handler * PHP 5 OOP * Using XML * Ajax * Xslt | VB6 Winsock - HTTP POST / GET * Winsock - HTTP File Upload

    Latest quote: crptcblade - VB6 executables can't be decompiled, only disassembled. And the disassembled code is even less useful than I am.

    Random VisualAd: Blog - Latest Post: When the Internet becomes Electricity!!


    Spread happiness and joy. Rate good posts.

  40. #40
    Hyperactive Member
    Join Date
    Aug 2008
    Posts
    353

    Re: Winsock: Making HTTP POST/GET Requests

    Great post ... i already learned some stuff with your app...

    But i was wondering...
    Once that i got all the cookie data and stuff with logging in...

    How do i manage to send that cookie data with another post request?
    I tried with inet1.execute.... but wont work


    Thanks again for this tutorial

Page 1 of 3 123 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width