Classic ASP
Classic ASP
URL Encoding Charset in POST Query Params
See more HTTP Examples
Demonstrates how to control the URL encoding charset in POST query params.Chilkat Classic ASP Downloads
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
success = 0
' This example requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
' We have the string "MÆRSK".
nameWin1252Encoded = "M%E6RSK"
set sb = Server.CreateObject("Chilkat.StringBuilder")
success = sb.DecodeAndAppend(nameWin1252Encoded,"url","windows-1252")
set http = Server.CreateObject("Chilkat.Http")
' We're setting the session log filename so we can see the exact request sent.
http.SessionLogFilename = "qa_output/sessionLog.txt"
' First demonstrate a simple application/x-www-form-urlencoded POST
set req = Server.CreateObject("Chilkat.HttpRequest")
' Set the Charset = "utf-8" to cause URL encoding to use utf-8.
req.Charset = "utf-8"
req.AddParam "name",sb.GetAsString()
req.HttpVerb = "POST"
req.ContentType = "application/x-www-form-urlencoded"
set resp = Server.CreateObject("Chilkat.HttpResponse")
success = http.HttpReq("https://www.chilkatsoft.com/something",req,resp)
If (success = 0) Then
Response.Write "<pre>" & Server.HTMLEncode( http.LastErrorText) & "</pre>"
Response.End
End If
' This is the request that is sent:
' Notice that utf-8 is used in the query param (the letter 'Æ' is %C3%A6)
' POST /something HTTP/1.1
' Host: www.chilkatsoft.com
' Content-Type: application/x-www-form-urlencoded
' Content-Length: 15
'
' name=M%C3%A6RSK
' ---------------------------------------------------------------
' Switch to windows-1252
req.Charset = "windows-1252"
req.HttpVerb = "POST"
req.ContentType = "application/x-www-form-urlencoded"
success = http.HttpReq("https://www.chilkatsoft.com/something",req,resp)
If (success = 0) Then
Response.Write "<pre>" & Server.HTMLEncode( http.LastErrorText) & "</pre>"
Response.End
End If
' This is the request that is sent:
' Notice that windows-1252 is used in the query param (the letter 'Æ' is %E6)
' POST /something HTTP/1.1
' Host: www.chilkatsoft.com
' Content-Type: application/x-www-form-urlencoded
' Content-Length: 12
'
' name=M%E6RSK
' ---------------------------------------------------------------
' Let's do the same with HttpSReq, switching back to utf-8
req.Path = "/something"
req.HttpVerb = "POST"
req.ContentType = "application/x-www-form-urlencoded"
req.Charset = "utf-8"
success = http.HttpSReq("www.chilkatsoft.com",443,1,req,resp)
If (success = 0) Then
Response.Write "<pre>" & Server.HTMLEncode( http.LastErrorText) & "</pre>"
Response.End
End If
' This is the request that is sent:
' Notice that utf-8 is used in the query param (the letter 'Æ' is %C3%A6)
' POST /something HTTP/1.1
' Host: www.chilkatsoft.com
' Content-Type: application/x-www-form-urlencoded
' Content-Length: 15
'
' name=M%C3%A6RSK
' ---------------------------------------------------------------
' Let's do a POST with XML body where the query params are in the HTTP request start line,
' and the Content-Type is text/xml where the body of the request is XML.
req.Path = "/something"
req.HttpVerb = "POST"
req.ContentType = "text/xml"
success = req.LoadBodyFromString("<test>123</test>","utf-8")
req.Charset = "utf-8"
' Remember... our request object still contains the query param added in the above call to AddParam.
success = http.HttpSReq("www.chilkatsoft.com",443,1,req,resp)
If (success = 0) Then
Response.Write "<pre>" & Server.HTMLEncode( http.LastErrorText) & "</pre>"
Response.End
End If
' This is the request that is sent:
' Notice that utf-8 is used in the query param (the letter 'Æ' is %C3%A6)
' POST /something?name=M%C3%A6RSK HTTP/1.1
' Host: www.chilkatsoft.com
' Content-Type: text/xml
' Content-Length: 16
'
' <test>123</test>
%>
</body>
</html>