![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Chilkat2-Python) curl with Variable Substitution in an XML Request BodySee more CURL ExamplesThis example shows how to use variables inside an XML request body using the {{variable_name}} syntax. When the HTTP request’s Content-Type indicates XML, Chilkat automatically applies proper XML entity encoding to each substituted value, ensuring the resulting XML remains valid.Note: This example requires Chilkat v11.5.0 or greater.
import sys import chilkat2 success = False # Variable names are enclosed between {{ and }} # curl -X POST https://api.example.com/api/orders \ # -H "Content-Type: application/xml; charset=utf-8" \ # -H "Accept: application/xml" \ # -d '<order> # <customerName>{{customer_name}}</customerName> # <note>{{note}}</note> # <address>{{address}}</address> # <instructions>{{instructions}}</instructions> # </order>' sbCurl = chilkat2.StringBuilder() sbCurl.AppendLn("curl -X POST https://api.example.com/api/orders \\") sbCurl.AppendLn(" -H \"Content-Type: application/xml; charset=utf-8\" \\") sbCurl.AppendLn(" -H \"Accept: application/xml\" \\") sbCurl.AppendLn(" -d '<order>") sbCurl.AppendLn(" <customerName>{{customer_name}}</customerName>") sbCurl.AppendLn(" <note>{{note}}</note>") sbCurl.AppendLn(" <address>{{address}}</address>") sbCurl.AppendLn(" <instructions>{{instructions}}</instructions>") sbCurl.AppendLn("</order>'") curl = chilkat2.HttpCurl() # The values below contain chars that will require XML entity encoding. # Chilkat will automatically do the encoding because the Content-Type of this request is "application/xml" curl.SetVar("customer_name","John & Sons") curl.SetVar("note","He said \"Ship it ASAP!\"") curl.SetVar("address","123 <Main> Street") curl.SetVar("instructions","Use door #2 & call upon arrival") # To demonstrate how the variables are replaced, this example does not execute the curl command. # Instead, it generates the raw HTTP request that would be sent if the curl command were run. sbRawRequest = chilkat2.StringBuilder() success = curl.ToRawRequest(sbCurl.GetAsString(),sbRawRequest) if (success == False): print(curl.LastErrorText) sys.exit() print(sbRawRequest.GetAsString()) # The output is shown below. # Notice the chars that were XML entity encoded. # POST /api/orders HTTP/1.1 # Accept: application/xml # Host: api.example.com # Content-Type: application/xml; charset=utf-8 # Content-Length: 229 # # <order> # <customerName>John & Sons</customerName> # <note>He said "Ship it ASAP!"</note> # <address>123 <Main> Street</address> # <instructions>Use door #2 & call upon arrival</instructions> # </order> |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.