[JENKINS-68154] Add Custom headers with special characters in their names #201
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Description
This PR addresses JENKINS-68154 & improvement on PR - 194 to allow custom headers with special characters in their names, such as hyphens.
Changes Done
In HttpRequestNameValuePair.java:
In HttpRequestStep.java:
In HttpRequest.java:
In README.adoc:
Added tests:
Testing done
pipeline { agent any stages { stage('Test HTTP Request with Special Header Names') { steps { script { echo "Testing HTTP Request with special characters in header names" def headerName1 = 'my-custom-header-with-hyphen-separator' def headerValue1 = 'test-value-1' def headerName2 = 'another-header-with-hyphens' def headerValue2 = 'test-value-2' // Create a map of headers with special characters def headers = [ "${headerName1}": "${headerValue1}", "${headerName2}": "${headerValue2}" ] // Make an HTTP request with these headers def response = httpRequest( url: 'https://httpbin.org/headers', // This endpoint returns the headers it receives headersMap: headers // Using our new headersMap parameter ) // Log the response echo "Response status: ${response.status}" echo "Response content: ${response.content}" // The response from httpbin.org has capitalized header names // For example: 'my-custom-header-with-hyphen-separator' becomes 'My-Custom-Header-With-Hyphen-Separator' def responseContent = response.content.toLowerCase() assert responseContent.contains(headerValue1.toLowerCase()) assert responseContent.contains(headerValue2.toLowerCase()) echo "Custom headers with special characters were successfully used!" } } } } }Submitter checklist