@@ -204,15 +204,19 @@ function curlToGo(curl) {
204204 relevant . method = cmd . request [ cmd . request . length - 1 ] . toUpperCase ( ) ;
205205 else if ( cmd . X && cmd . X . length > 0 )
206206 relevant . method = cmd . X [ cmd . X . length - 1 ] . toUpperCase ( ) ; // if multiple, use last (according to curl docs)
207- else if ( cmd [ "data-binary" ] && cmd [ "data-binary" ] . length > 0 ) {
208- relevant . method = "POST" ; // if data-binary, user method POST
209- relevant . dataType = "raw" ; // if data-binary, post body will be raw
207+ else if (
208+ ( cmd [ "data-binary" ] && cmd [ "data-binary" ] . length > 0 )
209+ || ( cmd [ "data-raw" ] && cmd [ "data-raw" ] . length > 0 )
210+ ) {
211+ // for --data-binary and --data-raw, use method POST & data-type raw
212+ relevant . method = "POST" ;
213+ relevant . dataType = "raw" ;
210214 }
211215
212216 // join multiple request body data, if any
213217 var dataAscii = [ ] ;
214218 var dataFiles = [ ] ;
215- var loadData = function ( d ) {
219+ var loadData = function ( d , dataRawFlag = false ) {
216220 if ( ! relevant . method )
217221 relevant . method = "POST" ;
218222
@@ -221,12 +225,15 @@ function curlToGo(curl) {
221225 if ( ! relevant . headers [ "Content-Type" ] )
222226 relevant . headers [ "Content-Type" ] = "application/x-www-form-urlencoded" ;
223227
224- for ( var i = 0 ; i < d . length ; i ++ )
225- {
226- if ( d [ i ] . length > 0 && d [ i ] [ 0 ] == "@" )
228+ for ( var i = 0 ; i < d . length ; i ++ ) {
229+ if (
230+ d [ i ] . length > 0 && d [ i ] [ 0 ] == "@"
231+ && ! dataRawFlag // data-raw flag ignores '@' character
232+ ) {
227233 dataFiles . push ( d [ i ] . substr ( 1 ) ) ;
228- else
234+ } else {
229235 dataAscii . push ( d [ i ] ) ;
236+ }
230237 }
231238 } ;
232239 if ( cmd . d )
@@ -235,6 +242,8 @@ function curlToGo(curl) {
235242 loadData ( cmd . data ) ;
236243 if ( cmd [ "data-binary" ] )
237244 loadData ( cmd [ "data-binary" ] ) ;
245+ if ( cmd [ "data-raw" ] )
246+ loadData ( cmd [ "data-raw" ] , true )
238247 if ( dataAscii . length > 0 )
239248 relevant . data . ascii = dataAscii . join ( "&" ) ;
240249 if ( dataFiles . length > 0 )
0 commit comments