|
|
#1 |
|
Swine Buddy
Join Date: Apr 02
Location: Langley, Berks, UK Mode: Restructuring
Posts: 4,833
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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
__________________
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: Spread happiness and joy. Rate good posts.
Last edited by visualAd; May 2nd, 2005 at 05:44 AM. |
|
|
|
|
|
#2 |
|
Frenzied Member
Join Date: Apr 05
Posts: 1,844
![]() |
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:
|
|
|
|
|
|
#3 |
|
Swine Buddy
Join Date: Apr 02
Location: Langley, Berks, UK Mode: Restructuring
Posts: 4,833
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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: Spread happiness and joy. Rate good posts.
|
|
|
|
|
|
#4 | |
|
Frenzied Member
Join Date: Apr 05
Posts: 1,844
![]() |
Re: Winsock: Making HTTP POST/GET Requests
Quote:
|
|
|
|
|
|
|
#5 |
|
Addicted Member
Join Date: Feb 06
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
Rich |
|
|
|
|
|
#6 |
|
Frenzied Member
Join Date: Apr 05
Posts: 1,844
![]() |
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 |
|
Addicted Member
Join Date: Feb 06
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 | |
|
Frenzied Member
Join Date: Apr 05
Posts: 1,844
![]() |
Re: Winsock: Making HTTP POST/GET Requests
Quote:
<form method=post action="myscript.php"> Link: <nput type ="tet" name="link2" size="35"> <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 | |
|
Junior Member
Join Date: May 06
Posts: 24
![]() |
Re: Winsock: Making HTTP POST/GET Requests
Quote:
|
|
|
|
|
|
|
#10 |
|
New Member
Join Date: Nov 06
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 08:51 AM. |
|
|
|
|
|
#11 |
|
New Member
Join Date: Aug 05
Posts: 2
![]() |
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 |
|
New Member
Join Date: Nov 06
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 |
|
Lively Member
Join Date: Mar 07
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 |
|
Lively Member
Join Date: Mar 07
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 |
|
New Member
Join Date: May 07
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 |
|
New Member
Join Date: May 07
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 |
|
New Member
Join Date: May 07
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 |
|
New Member
Join Date: May 07
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 |
|
New Member
Join Date: Jun 07
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 |
|
New Member
Join Date: Sep 04
Posts: 13
![]() |
Re: Winsock: Making HTTP POST/GET Requests
EDITED: I fixed it
Thank you.. Last edited by Dustcrazy; Nov 25th, 2007 at 09:22 PM. |
|
|
|
|
|
#21 |
|
New Member
Join Date: Jun 08
Posts: 2
![]() |
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 |
|
Swine Buddy
Join Date: Apr 02
Location: Langley, Berks, UK Mode: Restructuring
Posts: 4,833
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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: Spread happiness and joy. Rate good posts.
|
|
|
|
|
|
#23 |
|
New Member
Join Date: Jun 08
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 |
|
Swine Buddy
Join Date: Apr 02
Location: Langley, Berks, UK Mode: Restructuring
Posts: 4,833
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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" Code:
' null character to separate username and password. authorization = FunctionToBase64Encode(username & ":" & password) Code:
GET /protected.html HTTP/1.0 Host: www.example.com Authorization: Basic dmlzdWFsYWQ6c2VjcmV0
__________________
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: Spread happiness and joy. Rate good posts.
|
|
|
|
|
|
#25 |
|
New Member
Join Date: Jun 08
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 | |
|
Swine Buddy
Join Date: Apr 02
Location: Langley, Berks, UK Mode: Restructuring
Posts: 4,833
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Re: Winsock: Making HTTP POST/GET Requests
Quote:
, 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: Spread happiness and joy. Rate good posts.
|
|
|
|
|
|
|
#27 | |
|
New Member
Join Date: Jun 08
Posts: 2
![]() |
Re: Winsock: Making HTTP POST/GET Requests
Quote:
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 |
|
Banned
Join Date: Mar 08
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 |
|
Swine Buddy
Join Date: Apr 02
Location: Langley, Berks, UK Mode: Restructuring
Posts: 4,833
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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: Spread happiness and joy. Rate good posts.
|
|
|
|
|
|
#30 |
|
Hyperactive Member
Join Date: Aug 08
Posts: 261
![]() |
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 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 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 |
|
Swine Buddy
Join Date: Apr 02
Location: Langley, Berks, UK Mode: Restructuring
Posts: 4,833
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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: Spread happiness and joy. Rate good posts.
|
|
|
|
|
|
#32 |
|
Hyperactive Member
Join Date: Aug 08
Posts: 261
![]() |
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 Code:
username=batori&password=batori&autologin=on&login=Log%2Bin 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 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 |
|
Swine Buddy
Join Date: Apr 02
Location: Langley, Berks, UK Mode: Restructuring
Posts: 4,833
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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: Spread happiness and joy. Rate good posts.
|
|
|
|
|
|
#34 |
|
Hyperactive Member
Join Date: Aug 08
Posts: 261
![]() |
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 |
|
New Member
Join Date: Aug 08
Posts: 2
![]() |
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
thx Last edited by indianeagle; Aug 29th, 2008 at 07:50 AM. |
|
|
|
|
|
#36 |
|
New Member
Join Date: Aug 08
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 | |
|
New Member
Join Date: Feb 06
Posts: 9
![]() |
Re: Winsock: Making HTTP POST/GET Requests
ok but how do you submit a file as in the example here
Quote:
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 |
|
New Member
Join Date: Sep 08
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 |
|
Swine Buddy
Join Date: Apr 02
Location: Langley, Berks, UK Mode: Restructuring
Posts: 4,833
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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: Spread happiness and joy. Rate good posts.
|
|
|
|
|
|
#40 |
|
Hyperactive Member
Join Date: Aug 08
Posts: 261
![]() |
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 |
|
|
|
![]() |
|
||||||
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|