diff --git a/.gitignore b/.gitignore index dddca89..a41ca4a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.log node_modules coverage* +.vscode \ No newline at end of file diff --git a/src/targets/c/libcurl.js b/src/targets/c/libcurl.js index be3a218..729bbec 100644 --- a/src/targets/c/libcurl.js +++ b/src/targets/c/libcurl.js @@ -1,6 +1,7 @@ 'use strict' const CodeBuilder = require('../../helpers/code-builder') +const helpers = require('../../helpers/headers') module.exports = function (source, options) { const code = new CodeBuilder() @@ -26,9 +27,9 @@ module.exports = function (source, options) { } // construct cookies - if (source.allHeaders.cookie) { + if (helpers.hasHeader(source.allHeaders, 'cookie')) { code.blank() - .push('curl_easy_setopt(hnd, CURLOPT_COOKIE, "%s");', source.allHeaders.cookie) + .push('curl_easy_setopt(hnd, CURLOPT_COOKIE, "%s");', helpers.getHeader(source.allHeaders, 'cookie')) } if (source.postData.text) { @@ -36,6 +37,11 @@ module.exports = function (source, options) { .push('curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, %s);', JSON.stringify(source.postData.text)) } + if (helpers.hasHeader(source.allHeaders, 'accept-encoding')) { + code.blank() + .push('curl_easy_setopt(hnd, CURLOPT_ACCEPT_ENCODING, "");') + } + code.blank() .push('CURLcode ret = curl_easy_perform(hnd);') diff --git a/src/targets/go/native.js b/src/targets/go/native.js index 9a6feee..af038d5 100644 --- a/src/targets/go/native.js +++ b/src/targets/go/native.js @@ -11,6 +11,7 @@ 'use strict' const CodeBuilder = require('../../helpers/code-builder') +const helpers = require('../../helpers/headers') module.exports = function (source, options) { // Let's Go! @@ -110,6 +111,11 @@ module.exports = function (source, options) { errorCheck() // Add headers + + // Go automatically adds this and handles decompression, as long as we don't try to + // manually add it ourselves: + delete source.allHeaders[helpers.getHeaderName(source.allHeaders, 'accept-encoding')] + if (Object.keys(source.allHeaders).length) { Object.keys(source.allHeaders).forEach(function (key) { code.push(indent, 'req.Header.Add("%s", "%qd")', key, source.allHeaders[key]) diff --git a/src/targets/python/python3.js b/src/targets/python/python3.js index 35ac961..fd0d121 100644 --- a/src/targets/python/python3.js +++ b/src/targets/python/python3.js @@ -11,9 +11,11 @@ 'use strict' const CodeBuilder = require('../../helpers/code-builder') +const helpers = require('../../helpers/headers') module.exports = function (source, options) { const code = new CodeBuilder() + // Start Request code.push('import http.client') @@ -21,6 +23,13 @@ module.exports = function (source, options) { code.push('import ssl') } + const mayBeGzipped = helpers.hasHeader(source.allHeaders, 'accept-encoding') && + helpers.getHeader(source.allHeaders, 'accept-encoding').includes('gzip') + + if (mayBeGzipped) { + code.push('import gzip') + } + code.blank() // Check which protocol to be used for the client connection @@ -90,7 +99,16 @@ module.exports = function (source, options) { .push('res = conn.getresponse()') .push('data = res.read()') .blank() - .push('print(data.decode("utf-8"))') + + // Decode response + if (mayBeGzipped) { + code.push("if res.headers['content-encoding'] == 'gzip':") + code.push(' print(gzip.decompress(data).decode("utf-8"))') + code.push('else:') + code.push(' print(data.decode("utf-8"))') + } else { + code.push('print(data.decode("utf-8"))') + } return code.join() } diff --git a/test/fixtures/output/c/libcurl/compression.c b/test/fixtures/output/c/libcurl/compression.c new file mode 100644 index 0000000..c008a40 --- /dev/null +++ b/test/fixtures/output/c/libcurl/compression.c @@ -0,0 +1,12 @@ +CURL *hnd = curl_easy_init(); + +curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); +curl_easy_setopt(hnd, CURLOPT_URL, "http://mockbin.com/har"); + +struct curl_slist *headers = NULL; +headers = curl_slist_append(headers, "accept-encoding: deflate, gzip, br"); +curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); + +curl_easy_setopt(hnd, CURLOPT_ACCEPT_ENCODING, ""); + +CURLcode ret = curl_easy_perform(hnd); \ No newline at end of file diff --git a/test/fixtures/output/clojure/clj_http/compression.clj b/test/fixtures/output/clojure/clj_http/compression.clj new file mode 100644 index 0000000..e81ae9d --- /dev/null +++ b/test/fixtures/output/clojure/clj_http/compression.clj @@ -0,0 +1,3 @@ +(require '[clj-http.client :as client]) + +(client/get "http://mockbin.com/har" {:headers {:accept-encoding "deflate, gzip, br"}}) \ No newline at end of file diff --git a/test/fixtures/output/csharp/httpclient/compression.cs b/test/fixtures/output/csharp/httpclient/compression.cs new file mode 100644 index 0000000..52fba9a --- /dev/null +++ b/test/fixtures/output/csharp/httpclient/compression.cs @@ -0,0 +1,16 @@ +var clientHandler = new HttpClientHandler +{ + AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip, +}; +var client = new HttpClient(clientHandler); +var request = new HttpRequestMessage +{ + Method = HttpMethod.Get, + RequestUri = new Uri("http://mockbin.com/har"), +}; +using (var response = await client.SendAsync(request)) +{ + response.EnsureSuccessStatusCode(); + var body = await response.Content.ReadAsStringAsync(); + Console.WriteLine(body); +} \ No newline at end of file diff --git a/test/fixtures/output/csharp/restsharp/compression.cs b/test/fixtures/output/csharp/restsharp/compression.cs new file mode 100644 index 0000000..c3f7c28 --- /dev/null +++ b/test/fixtures/output/csharp/restsharp/compression.cs @@ -0,0 +1,4 @@ +var client = new RestClient("http://mockbin.com/har"); +var request = new RestRequest(Method.GET); +request.AddHeader("accept-encoding", "deflate, gzip, br"); +IRestResponse response = client.Execute(request); \ No newline at end of file diff --git a/test/fixtures/output/go/native/compression.go b/test/fixtures/output/go/native/compression.go new file mode 100644 index 0000000..fae06af --- /dev/null +++ b/test/fixtures/output/go/native/compression.go @@ -0,0 +1,23 @@ +package main + +import ( + "fmt" + "net/http" + "io" +) + +func main() { + + url := "http://mockbin.com/har" + + req, _ := http.NewRequest("GET", url, nil) + + res, _ := http.DefaultClient.Do(req) + + defer res.Body.Close() + body, _ := io.ReadAll(res.Body) + + fmt.Println(res) + fmt.Println(string(body)) + +} \ No newline at end of file diff --git a/test/fixtures/output/http/1.1/compression b/test/fixtures/output/http/1.1/compression new file mode 100644 index 0000000..8e2f8b1 --- /dev/null +++ b/test/fixtures/output/http/1.1/compression @@ -0,0 +1,3 @@ +GET /har HTTP/1.1 +Accept-Encoding: deflate, gzip, br +Host: mockbin.com \ No newline at end of file diff --git a/test/fixtures/output/java/asynchttp/compression.java b/test/fixtures/output/java/asynchttp/compression.java new file mode 100644 index 0000000..ecadc31 --- /dev/null +++ b/test/fixtures/output/java/asynchttp/compression.java @@ -0,0 +1,9 @@ +AsyncHttpClient client = new DefaultAsyncHttpClient(); +client.prepare("GET", "http://mockbin.com/har") + .setHeader("accept-encoding", "deflate, gzip, br") + .execute() + .toCompletableFuture() + .thenAccept(System.out::println) + .join(); + +client.close(); \ No newline at end of file diff --git a/test/fixtures/output/java/nethttp/compression.java b/test/fixtures/output/java/nethttp/compression.java new file mode 100644 index 0000000..569ab05 --- /dev/null +++ b/test/fixtures/output/java/nethttp/compression.java @@ -0,0 +1,7 @@ +HttpRequest request = HttpRequest.newBuilder() + .uri(URI.create("http://mockbin.com/har")) + .header("accept-encoding", "deflate, gzip, br") + .method("GET", HttpRequest.BodyPublishers.noBody()) + .build(); +HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); +System.out.println(response.body()); \ No newline at end of file diff --git a/test/fixtures/output/java/okhttp/compression.java b/test/fixtures/output/java/okhttp/compression.java new file mode 100644 index 0000000..2503e18 --- /dev/null +++ b/test/fixtures/output/java/okhttp/compression.java @@ -0,0 +1,9 @@ +OkHttpClient client = new OkHttpClient(); + +Request request = new Request.Builder() + .url("http://mockbin.com/har") + .get() + .addHeader("accept-encoding", "deflate, gzip, br") + .build(); + +Response response = client.newCall(request).execute(); \ No newline at end of file diff --git a/test/fixtures/output/java/unirest/compression.java b/test/fixtures/output/java/unirest/compression.java new file mode 100644 index 0000000..d006f9e --- /dev/null +++ b/test/fixtures/output/java/unirest/compression.java @@ -0,0 +1,3 @@ +HttpResponse response = Unirest.get("http://mockbin.com/har") + .header("accept-encoding", "deflate, gzip, br") + .asString(); \ No newline at end of file diff --git a/test/fixtures/output/javascript/axios/compression.js b/test/fixtures/output/javascript/axios/compression.js new file mode 100644 index 0000000..02f2a93 --- /dev/null +++ b/test/fixtures/output/javascript/axios/compression.js @@ -0,0 +1,13 @@ +import axios from "axios"; + +const options = { + method: 'GET', + url: 'http://mockbin.com/har', + headers: {'accept-encoding': 'deflate, gzip, br'} +}; + +axios.request(options).then(function (response) { + console.log(response.data); +}).catch(function (error) { + console.error(error); +}); \ No newline at end of file diff --git a/test/fixtures/output/javascript/fetch/compression.js b/test/fixtures/output/javascript/fetch/compression.js new file mode 100644 index 0000000..4215429 --- /dev/null +++ b/test/fixtures/output/javascript/fetch/compression.js @@ -0,0 +1,6 @@ +const options = {method: 'GET', headers: {'accept-encoding': 'deflate, gzip, br'}}; + +fetch('http://mockbin.com/har', options) + .then(response => response.json()) + .then(response => console.log(response)) + .catch(err => console.error(err)); \ No newline at end of file diff --git a/test/fixtures/output/javascript/jquery/compression.js b/test/fixtures/output/javascript/jquery/compression.js new file mode 100644 index 0000000..6d60dd9 --- /dev/null +++ b/test/fixtures/output/javascript/jquery/compression.js @@ -0,0 +1,13 @@ +const settings = { + "async": true, + "crossDomain": true, + "url": "http://mockbin.com/har", + "method": "GET", + "headers": { + "accept-encoding": "deflate, gzip, br" + } +}; + +$.ajax(settings).done(function (response) { + console.log(response); +}); \ No newline at end of file diff --git a/test/fixtures/output/javascript/xhr/compression.js b/test/fixtures/output/javascript/xhr/compression.js new file mode 100644 index 0000000..eca54e4 --- /dev/null +++ b/test/fixtures/output/javascript/xhr/compression.js @@ -0,0 +1,15 @@ +const data = null; + +const xhr = new XMLHttpRequest(); +xhr.withCredentials = true; + +xhr.addEventListener("readystatechange", function () { + if (this.readyState === this.DONE) { + console.log(this.responseText); + } +}); + +xhr.open("GET", "http://mockbin.com/har"); +xhr.setRequestHeader("accept-encoding", "deflate, gzip, br"); + +xhr.send(data); \ No newline at end of file diff --git a/test/fixtures/output/kotlin/okhttp/compression.kt b/test/fixtures/output/kotlin/okhttp/compression.kt new file mode 100644 index 0000000..7b1ab0c --- /dev/null +++ b/test/fixtures/output/kotlin/okhttp/compression.kt @@ -0,0 +1,9 @@ +val client = OkHttpClient() + +val request = Request.Builder() + .url("http://mockbin.com/har") + .get() + .addHeader("accept-encoding", "deflate, gzip, br") + .build() + +val response = client.newCall(request).execute() \ No newline at end of file diff --git a/test/fixtures/output/node/axios/compression.js b/test/fixtures/output/node/axios/compression.js new file mode 100644 index 0000000..6d4ba84 --- /dev/null +++ b/test/fixtures/output/node/axios/compression.js @@ -0,0 +1,13 @@ +var axios = require("axios").default; + +var options = { + method: 'GET', + url: 'http://mockbin.com/har', + headers: {'accept-encoding': 'deflate, gzip, br'} +}; + +axios.request(options).then(function (response) { + console.log(response.data); +}).catch(function (error) { + console.error(error); +}); \ No newline at end of file diff --git a/test/fixtures/output/node/fetch/compression.js b/test/fixtures/output/node/fetch/compression.js new file mode 100644 index 0000000..2eee5e8 --- /dev/null +++ b/test/fixtures/output/node/fetch/compression.js @@ -0,0 +1,10 @@ +const fetch = require('node-fetch'); + +let url = 'http://mockbin.com/har'; + +let options = {method: 'GET', headers: {'accept-encoding': 'deflate, gzip, br'}}; + +fetch(url, options) + .then(res => res.json()) + .then(json => console.log(json)) + .catch(err => console.error('error:' + err)); \ No newline at end of file diff --git a/test/fixtures/output/node/native/compression.js b/test/fixtures/output/node/native/compression.js new file mode 100644 index 0000000..1433ebc --- /dev/null +++ b/test/fixtures/output/node/native/compression.js @@ -0,0 +1,26 @@ +const http = require("http"); + +const options = { + "method": "GET", + "hostname": "mockbin.com", + "port": null, + "path": "/har", + "headers": { + "accept-encoding": "deflate, gzip, br" + } +}; + +const req = http.request(options, function (res) { + const chunks = []; + + res.on("data", function (chunk) { + chunks.push(chunk); + }); + + res.on("end", function () { + const body = Buffer.concat(chunks); + console.log(body.toString()); + }); +}); + +req.end(); \ No newline at end of file diff --git a/test/fixtures/output/node/request/compression.js b/test/fixtures/output/node/request/compression.js new file mode 100644 index 0000000..b034830 --- /dev/null +++ b/test/fixtures/output/node/request/compression.js @@ -0,0 +1,13 @@ +const request = require('request'); + +const options = { + method: 'GET', + url: 'http://mockbin.com/har', + headers: {'accept-encoding': 'deflate, gzip, br'} +}; + +request(options, function (error, response, body) { + if (error) throw new Error(error); + + console.log(body); +}); \ No newline at end of file diff --git a/test/fixtures/output/node/unirest/compression.js b/test/fixtures/output/node/unirest/compression.js new file mode 100644 index 0000000..da60aa6 --- /dev/null +++ b/test/fixtures/output/node/unirest/compression.js @@ -0,0 +1,13 @@ +const unirest = require("unirest"); + +const req = unirest("GET", "http://mockbin.com/har"); + +req.headers({ + "accept-encoding": "deflate, gzip, br" +}); + +req.end(function (res) { + if (res.error) throw new Error(res.error); + + console.log(res.body); +}); \ No newline at end of file diff --git a/test/fixtures/output/objc/nsurlsession/compression.m b/test/fixtures/output/objc/nsurlsession/compression.m new file mode 100644 index 0000000..533bd79 --- /dev/null +++ b/test/fixtures/output/objc/nsurlsession/compression.m @@ -0,0 +1,21 @@ +#import + +NSDictionary *headers = @{ @"accept-encoding": @"deflate, gzip, br" }; + +NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://mockbin.com/har"] + cachePolicy:NSURLRequestUseProtocolCachePolicy + timeoutInterval:10.0]; +[request setHTTPMethod:@"GET"]; +[request setAllHTTPHeaderFields:headers]; + +NSURLSession *session = [NSURLSession sharedSession]; +NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request + completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { + if (error) { + NSLog(@"%@", error); + } else { + NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response; + NSLog(@"%@", httpResponse); + } + }]; +[dataTask resume]; \ No newline at end of file diff --git a/test/fixtures/output/ocaml/cohttp/compression.ml b/test/fixtures/output/ocaml/cohttp/compression.ml new file mode 100644 index 0000000..e5703bd --- /dev/null +++ b/test/fixtures/output/ocaml/cohttp/compression.ml @@ -0,0 +1,10 @@ +open Cohttp_lwt_unix +open Cohttp +open Lwt + +let uri = Uri.of_string "http://mockbin.com/har" in +let headers = Header.add (Header.init ()) "accept-encoding" "deflate, gzip, br" in + +Client.call ~headers `GET uri +>>= fun (res, body_stream) -> + (* Do stuff with the result *) \ No newline at end of file diff --git a/test/fixtures/output/php/curl/compression.php b/test/fixtures/output/php/curl/compression.php new file mode 100644 index 0000000..6bf18d4 --- /dev/null +++ b/test/fixtures/output/php/curl/compression.php @@ -0,0 +1,27 @@ + "http://mockbin.com/har", + CURLOPT_RETURNTRANSFER => true, + CURLOPT_ENCODING => "", + CURLOPT_MAXREDIRS => 10, + CURLOPT_TIMEOUT => 30, + CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, + CURLOPT_CUSTOMREQUEST => "GET", + CURLOPT_HTTPHEADER => [ + "accept-encoding: deflate, gzip, br" + ], +]); + +$response = curl_exec($curl); +$err = curl_error($curl); + +curl_close($curl); + +if ($err) { + echo "cURL Error #:" . $err; +} else { + echo $response; +} \ No newline at end of file diff --git a/test/fixtures/output/php/http1/compression.php b/test/fixtures/output/php/http1/compression.php new file mode 100644 index 0000000..357272c --- /dev/null +++ b/test/fixtures/output/php/http1/compression.php @@ -0,0 +1,17 @@ +setUrl('http://mockbin.com/har'); +$request->setMethod(HTTP_METH_GET); + +$request->setHeaders([ + 'accept-encoding' => 'deflate, gzip, br' +]); + +try { + $response = $request->send(); + + echo $response->getBody(); +} catch (HttpException $ex) { + echo $ex; +} \ No newline at end of file diff --git a/test/fixtures/output/php/http2/compression.php b/test/fixtures/output/php/http2/compression.php new file mode 100644 index 0000000..d6b15f2 --- /dev/null +++ b/test/fixtures/output/php/http2/compression.php @@ -0,0 +1,15 @@ +setRequestUrl('http://mockbin.com/har'); +$request->setRequestMethod('GET'); +$request->setHeaders([ + 'accept-encoding' => 'deflate, gzip, br' +]); + +$client->enqueue($request)->send(); +$response = $client->getResponse(); + +echo $response->getBody(); \ No newline at end of file diff --git a/test/fixtures/output/powershell/restmethod/compression.ps1 b/test/fixtures/output/powershell/restmethod/compression.ps1 new file mode 100644 index 0000000..c7d2e5a --- /dev/null +++ b/test/fixtures/output/powershell/restmethod/compression.ps1 @@ -0,0 +1,3 @@ +$headers=@{} +$headers.Add("accept-encoding", "deflate, gzip, br") +$response = Invoke-RestMethod -Uri 'http://mockbin.com/har' -Method GET -Headers $headers \ No newline at end of file diff --git a/test/fixtures/output/powershell/webrequest/compression.ps1 b/test/fixtures/output/powershell/webrequest/compression.ps1 new file mode 100644 index 0000000..1e9ada0 --- /dev/null +++ b/test/fixtures/output/powershell/webrequest/compression.ps1 @@ -0,0 +1,3 @@ +$headers=@{} +$headers.Add("accept-encoding", "deflate, gzip, br") +$response = Invoke-WebRequest -Uri 'http://mockbin.com/har' -Method GET -Headers $headers \ No newline at end of file diff --git a/test/fixtures/output/python/python3/compression.py b/test/fixtures/output/python/python3/compression.py new file mode 100644 index 0000000..a3bc5e3 --- /dev/null +++ b/test/fixtures/output/python/python3/compression.py @@ -0,0 +1,16 @@ +import http.client +import gzip + +conn = http.client.HTTPConnection("mockbin.com") + +headers = { "accept-encoding": "deflate, gzip, br" } + +conn.request("GET", "/har", headers=headers) + +res = conn.getresponse() +data = res.read() + +if res.headers['content-encoding'] == 'gzip': + print(gzip.decompress(data).decode("utf-8")) +else: + print(data.decode("utf-8")) \ No newline at end of file diff --git a/test/fixtures/output/python/python3/content-encoding-gzip.py b/test/fixtures/output/python/python3/content-encoding-gzip.py new file mode 100644 index 0000000..7273599 --- /dev/null +++ b/test/fixtures/output/python/python3/content-encoding-gzip.py @@ -0,0 +1,16 @@ +import http.client +import gzip + +conn = http.client.HTTPConnection("mockbin.com") + +headers = { "accept-encoding": "gzip" } + +conn.request("GET", "/har", headers=headers) + +res = conn.getresponse() +data = res.read() + +if res.headers['content-encoding'] == 'gzip': + print(gzip.decompress(data).decode("utf-8")) +else: + print(data.decode("utf-8")) diff --git a/test/fixtures/output/python/requests/compression.py b/test/fixtures/output/python/requests/compression.py new file mode 100644 index 0000000..9461c17 --- /dev/null +++ b/test/fixtures/output/python/requests/compression.py @@ -0,0 +1,9 @@ +import requests + +url = "http://mockbin.com/har" + +headers = { "accept-encoding": "deflate, gzip, br" } + +response = requests.get(url, headers=headers) + +print(response.text) \ No newline at end of file diff --git a/test/fixtures/output/r/httr/compression.r b/test/fixtures/output/r/httr/compression.r new file mode 100644 index 0000000..60df700 --- /dev/null +++ b/test/fixtures/output/r/httr/compression.r @@ -0,0 +1,7 @@ +library(httr) + +url <- "http://mockbin.com/har" + +response <- VERB("GET", url, add_headers(accept_encoding = 'deflate, gzip, br'), content_type("application/octet-stream")) + +content(response, "text") \ No newline at end of file diff --git a/test/fixtures/output/ruby/native/compression.rb b/test/fixtures/output/ruby/native/compression.rb new file mode 100644 index 0000000..d2f7260 --- /dev/null +++ b/test/fixtures/output/ruby/native/compression.rb @@ -0,0 +1,12 @@ +require 'uri' +require 'net/http' + +url = URI("http://mockbin.com/har") + +http = Net::HTTP.new(url.host, url.port) + +request = Net::HTTP::Get.new(url) +request["accept-encoding"] = 'deflate, gzip, br' + +response = http.request(request) +puts response.read_body \ No newline at end of file diff --git a/test/fixtures/output/shell/curl/compression.sh b/test/fixtures/output/shell/curl/compression.sh new file mode 100644 index 0000000..da25c0d --- /dev/null +++ b/test/fixtures/output/shell/curl/compression.sh @@ -0,0 +1,4 @@ +curl --request GET \ + --url http://mockbin.com/har \ + --compressed \ + --header 'accept-encoding: deflate, gzip, br' \ No newline at end of file diff --git a/test/fixtures/output/shell/httpie/compression.sh b/test/fixtures/output/shell/httpie/compression.sh new file mode 100644 index 0000000..2e8d060 --- /dev/null +++ b/test/fixtures/output/shell/httpie/compression.sh @@ -0,0 +1,2 @@ +http GET http://mockbin.com/har \ + accept-encoding:'deflate, gzip, br' \ No newline at end of file diff --git a/test/fixtures/output/shell/wget/compression.sh b/test/fixtures/output/shell/wget/compression.sh new file mode 100644 index 0000000..50d8266 --- /dev/null +++ b/test/fixtures/output/shell/wget/compression.sh @@ -0,0 +1,5 @@ +wget --quiet \ + --method GET \ + --header 'accept-encoding: deflate, gzip, br' \ + --output-document \ + - http://mockbin.com/har \ No newline at end of file diff --git a/test/fixtures/output/swift/nsurlsession/compression.swift b/test/fixtures/output/swift/nsurlsession/compression.swift new file mode 100644 index 0000000..96f296b --- /dev/null +++ b/test/fixtures/output/swift/nsurlsession/compression.swift @@ -0,0 +1,21 @@ +import Foundation + +let headers = ["accept-encoding": "deflate, gzip, br"] + +let request = NSMutableURLRequest(url: NSURL(string: "http://mockbin.com/har")! as URL, + cachePolicy: .useProtocolCachePolicy, + timeoutInterval: 10.0) +request.httpMethod = "GET" +request.allHTTPHeaderFields = headers + +let session = URLSession.shared +let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in + if (error != nil) { + print(error) + } else { + let httpResponse = response as? HTTPURLResponse + print(httpResponse) + } +}) + +dataTask.resume() \ No newline at end of file diff --git a/test/fixtures/curl/compression.json b/test/fixtures/requests/compression.json similarity index 100% rename from test/fixtures/curl/compression.json rename to test/fixtures/requests/compression.json diff --git a/test/targets/shell/curl.js b/test/targets/shell/curl.js index 4f1819e..44323bb 100644 --- a/test/targets/shell/curl.js +++ b/test/targets/shell/curl.js @@ -74,15 +74,6 @@ module.exports = function (HTTPSnippet, fixtures) { result.should.eql('curl --request GET --url http://mockbin.com/request --http1.0') }) - it('should use --compressed for requests that accept encodings', function () { - const result = new HTTPSnippet(fixtures.curl.compression).convert('shell', 'curl', { - indent: false - }) - - result.should.be.a.String() - result.should.eql("curl --request GET --url http://mockbin.com/har --compressed --header 'accept-encoding: deflate, gzip, br'") - }) - it('should use custom indentation', function () { const result = new HTTPSnippet(fixtures.requests.full).convert('shell', 'curl', { indent: '@'