POST application/x-www-form-urlencoded cURL code generated from Postman is not imported correctly
- Dominant language
- Java
- Stars
- 9.5k
- Forks
- 2.3k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 5
Description
**eR@SeR** ([Bug 65270](https://bz.apache.org/bugzilla//show_bug.cgi?id=65270&redirect=false)):
Hello,
When POST application/x-www-form-urlencoded request is opened in Code/cURL mode in Postman, then entire lines copied and pasted into "Import from cURL" in JMeter, HTTP Sampler is not generated:
cURL example - more than one --data-urlencode:
curl --location --request POST 'http://example.com/access/token' \
--header 'HTTP_X_FORWARDED_FOR: 127.0.0.1' \
--header 'Accept-Language: it-IT' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=someID' \
--data-urlencode 'client_secret=someSecret' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'username=test' \
--data-urlencode 'password=Password1234'
Error:
ERROR o.a.j.p.h.g.a.ParseCurlCommandAction: Error creating test plan from cURL command:curl --location --request POST 'http://example.com/access/token' \
--header 'HTTP_X_FORWARDED_FOR: 127.0.0' \
--header 'Accept-Language: it-IT' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=someID' \
--data-urlencode 'client_secret=someSecret' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'username=test' \
--data-urlencode 'password=Password1234', error:Unexpected format for command line:curl --location --request POST 'http://example.com/access/token' \
--header 'HTTP_X_FORWARDED_FOR: 127.0.0' \
--header 'Accept-Language: it-IT' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=someID' \
--data-urlencode 'client_secret=someSecret' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'username=test' \
--data-urlencode 'password=Password1234', error:Duplicate options for -맢/--data-urlencode found.
java.lang.IllegalArgumentException: Unexpected format for command line:curl --location --request POST 'http://example.com/access/token' \
--header 'HTTP_X_FORWARDED_FOR: 127.0.0' \
--header 'Accept-Language: it-IT' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=someID' \
--data-urlencode 'client_secret=someSecret' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'username=test' \
--data-urlencode 'password=Password1234', error:Duplicate options for -맢/--data-urlencode found.
at org.apache.jmeter.protocol.http.curl.BasicCurlParser.parse(BasicCurlParser.java:820) ~[ApacheJMeter_http.jar:5.5-SNAPSHOT]
at org.apache.jmeter.protocol.http.gui.action.ParseCurlCommandAction.parseCommands(ParseCurlCommandAction.java:685) ~[ApacheJMeter_http.jar:5.5-SNAPSHOT]
at org.apache.jmeter.protocol.http.gui.action.ParseCurlCommandAction.actionPerformed(ParseCurlCommandAction.java:634) ~[ApacheJMeter_http.jar:5.5-SNAPSHOT]
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) ~[?:?]
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) ~[?:?]
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) ~[?:?]
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) ~[?:?]
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) ~[?:?]
at java.awt.Component.processMouseEvent(Component.java:6614) ~[?:?]
at javax.swing.JComponent.processMouseEvent(JComponent.java:3342) ~[?:?]
at java.awt.Component.processEvent(Component.java:6379) ~[?:?]
at java.awt.Container.processEvent(Container.java:2263) ~[?:?]
at java.awt.Component.dispatchEventImpl(Component.java:4990) ~[?:?]
at java.awt.Container.dispatchEventImpl(Container.java:2321) ~[?:?]
at java.awt.Component.dispatchEvent(Component.java:4822) ~[?:?]
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4919) ~[?:?]
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4548) ~[?:?]
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4489) ~[?:?]
at java.awt.Container.dispatchEventImpl(Container.java:2307) ~[?:?]
at java.awt.Window.dispatchEventImpl(Window.java:2769) ~[?:?]
at java.awt.Component.dispatchEvent(Component.java:4822) ~[?:?]
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) ~[?:?]
at java.awt.EventQueue$4.run(EventQueue.java:721) ~[?:?]
at java.awt.EventQueue$4.run(EventQueue.java:715) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:391) [?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) ~[?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) ~[?:?]
at java.awt.EventQueue$5.run(EventQueue.java:745) ~[?:?]
at java.awt.EventQueue$5.run(EventQueue.java:743) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:391) [?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) [?:?]
at java.awt.EventQueue.dispatchEvent(EventQueue.java:742) [?:?]
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]
ERROR o.a.j.p.h.g.a.ParseCurlCommandAction: Error creating test plan from cURL command list:[curl --location --request POST 'http://example.com/access/token' \
--header 'HTTP_X_FORWARDED_FOR: 127.0.0' \
--header 'Accept-Language: it-IT' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=someID' \
--data-urlencode 'client_secret=someSecret' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'username=test' \
--data-urlencode 'password=Password1234']
java.lang.IllegalArgumentException: Unexpected format for command line:curl --location --request POST 'http://example.com/access/token' \
--header 'HTTP_X_FORWARDED_FOR: 127.0.0' \
--header 'Accept-Language: it-IT' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=someID' \
--data-urlencode 'client_secret=someSecret' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'username=test' \
--data-urlencode 'password=Password1234', error:Duplicate options for -맢/--data-urlencode found.
at org.apache.jmeter.protocol.http.curl.BasicCurlParser.parse(BasicCurlParser.java:820) ~[ApacheJMeter_http.jar:5.5-SNAPSHOT]
at org.apache.jmeter.protocol.http.gui.action.ParseCurlCommandAction.parseCommands(ParseCurlCommandAction.java:685) ~[ApacheJMeter_http.jar:5.5-SNAPSHOT]
at org.apache.jmeter.protocol.http.gui.action.ParseCurlCommandAction.actionPerformed(ParseCurlCommandAction.java:634) ~[ApacheJMeter_http.jar:5.5-SNAPSHOT]
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) ~[?:?]
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) ~[?:?]
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) ~[?:?]
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) ~[?:?]
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) ~[?:?]
at java.awt.Component.processMouseEvent(Component.java:6614) ~[?:?]
at javax.swing.JComponent.processMouseEvent(JComponent.java:3342) ~[?:?]
at java.awt.Component.processEvent(Component.java:6379) ~[?:?]
at java.awt.Container.processEvent(Container.java:2263) ~[?:?]
at java.awt.Component.dispatchEventImpl(Component.java:4990) ~[?:?]
at java.awt.Container.dispatchEventImpl(Container.java:2321) ~[?:?]
at java.awt.Component.dispatchEvent(Component.java:4822) ~[?:?]
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4919) ~[?:?]
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4548) ~[?:?]
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4489) ~[?:?]
at java.awt.Container.dispatchEventImpl(Container.java:2307) ~[?:?]
at java.awt.Window.dispatchEventImpl(Window.java:2769) ~[?:?]
at java.awt.Component.dispatchEvent(Component.java:4822) ~[?:?]
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) ~[?:?]
at java.awt.EventQueue$4.run(EventQueue.java:721) ~[?:?]
at java.awt.EventQueue$4.run(EventQueue.java:715) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:391) [?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) ~[?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) ~[?:?]
at java.awt.EventQueue$5.run(EventQueue.java:745) ~[?:?]
at java.awt.EventQueue$5.run(EventQueue.java:743) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:391) [?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) [?:?]
at java.awt.EventQueue.dispatchEvent(EventQueue.java:742) [?:?]
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]
It seems that it cannot generate more than 1 --data-urlencode parameter. When one is provided then HTTP Sampler is successfully generated.
-----------------------------
cURL example - blank parameter and value in "--data-urlencode" (if parameter name and value are blank but left checked accidentally in Postman):
curl --location --request POST 'http://example.com/access/token' \
--header 'HTTP_X_FORWARDED_FOR: 127.0.0.1' \
--header 'Accept-Language: it-IT' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode '='
Error:
ERROR o.a.j.p.h.g.a.ParseCurlCommandAction: Error creating test plan from cURL command list:[curl --location --request POST 'http://example.com/access/token' \
--header 'HTTP_X_FORWARDED_FOR: 127.0.0.1' \
--header 'Accept-Language: it-IT' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode '=']
java.lang.NullPointerException: Cannot invoke "String.trim()" because "value" is null
at org.apache.jmeter.protocol.http.curl.BasicCurlParser.parse(BasicCurlParser.java:721) ~[ApacheJMeter_http.jar:5.5-SNAPSHOT]
at org.apache.jmeter.protocol.http.gui.action.ParseCurlCommandAction.parseCommands(ParseCurlCommandAction.java:685) ~[ApacheJMeter_http.jar:5.5-SNAPSHOT]
at org.apache.jmeter.protocol.http.gui.action.ParseCurlCommandAction.actionPerformed(ParseCurlCommandAction.java:634) ~[ApacheJMeter_http.jar:5.5-SNAPSHOT]
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) ~[?:?]
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) ~[?:?]
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) ~[?:?]
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) ~[?:?]
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) ~[?:?]
at java.awt.Component.processMouseEvent(Component.java:6614) ~[?:?]
at javax.swing.JComponent.processMouseEvent(JComponent.java:3342) ~[?:?]
at java.awt.Component.processEvent(Component.java:6379) ~[?:?]
at java.awt.Container.processEvent(Container.java:2263) ~[?:?]
at java.awt.Component.dispatchEventImpl(Component.java:4990) ~[?:?]
at java.awt.Container.dispatchEventImpl(Container.java:2321) ~[?:?]
at java.awt.Component.dispatchEvent(Component.java:4822) ~[?:?]
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4919) ~[?:?]
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4548) ~[?:?]
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4489) ~[?:?]
at java.awt.Container.dispatchEventImpl(Container.java:2307) ~[?:?]
at java.awt.Window.dispatchEventImpl(Window.java:2769) ~[?:?]
at java.awt.Component.dispatchEvent(Component.java:4822) ~[?:?]
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) ~[?:?]
at java.awt.EventQueue$4.run(EventQueue.java:721) ~[?:?]
at java.awt.EventQueue$4.run(EventQueue.java:715) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:391) [?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) ~[?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) ~[?:?]
at java.awt.EventQueue$5.run(EventQueue.java:745) ~[?:?]
at java.awt.EventQueue$5.run(EventQueue.java:743) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:391) [?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) [?:?]
at java.awt.EventQueue.dispatchEvent(EventQueue.java:742) [?:?]
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]
-----------------------------
cURL example - one "--data-urlencode" parameter:
curl --location --request POST 'http://example.com/access/token' \
--header 'HTTP_X_FORWARDED_FOR: 127.0.0.1' \
--header 'Accept-Language: it-IT' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'username=test'
HTTP Sampler is successfully created. However, parameter name and value are generated inside the Value column like "username=test", instead of being properly put to Name and Value columns inside the Parameters tab. Check the attached image.
Jmeter 5.5 08c3c59
Microsoft Windows 10 Enterprise 64-bit
java version "15.0.1" 2020-10-20
Created attachment [generated%20cURL.jpg](https://apache.github.io/jmeter-bugzilla-attachments/70/65270/37835/generated%2520cURL.jpg): generated cURL

Version: Nightly
Severity: normal
OS: All
Contributor guide
Assessment
This issue has not been assessed yet.