Web Queries : Passing variables via POST method not working

M

mister tbo

Hello !

This is my first post here, and hopefully not my last. Hope someone can
help, I'm clueless.

I have to pass a few variables to a VBA Web Query that uses POST method. So
far, so good. However, one of the variables is a bit tricky (it's actually a
constant), of the form "/wEWIALL337KBDgK+1+PfDwLhp" (but way longer). Excel
wont pass it as is because of the + signs. When I check out the POST data
sent with an http analyzer, I see that the pluses have become line returns !

Original : "/wEWIALL337KBDgK+1+PfDwLhp"
Becomes : "/wEWIALL337KBDgK
1
PfDwLhp"

I tried replacing the pluses by Chr(43), but the problem remains, the http
analyzer still shows the variable passed with line returns, which of course,
gives me an error page from the server.

Any clues on a workaround (pretty pretty please) ?

Thanks in advance.

PS. I'm working on Excel 2002 SP3.
 
M

mister tbo

Thank you for your reply and help... It works ! And thanks for the link, it
will prove useful in the future :)

Anyhow, code (simplified) is now :

Const Target_URL as String = "www.website.com/login.aspx"
Const User as String = "UserId=user"
Const Password as String = "&Password=password"
[...]
Const EventValidation as String = "&__EVENTVALIDATION="
Dim EventValidation_VAL As String
EventValidation_VAL = "/wEWIALQKy5MT8AgKT0pndDAL337KBDgK+1+PfDw"
Event_Validation_VAL = Replace(EventValidation_VAL, "+", "%2B")

Dim POST_DATA as String
POST_DATA = User & Password & Var_1 & ... & EventValidation &
EventValidation_VAL

With ActiveSheet.QueryTables.Add(Connection:= _
"URL;" & Target_URL, Destination:=Cells(1, 1))
.PostText = POST_DATA
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SaveData = True
End With

Thanks again for your help !
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top