Skip to content

Commit 411844f

Browse files
feat: native upload support in python requests snippets (Kong#259)
Co-authored-by: Dimitri Mitropoulos <[email protected]>
1 parent 0e0728a commit 411844f

40 files changed

Lines changed: 138 additions & 33 deletions

File tree

src/fixtures/requests/multipart-data.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@
1515
"value": "Hello World",
1616
"fileName": "hello.txt",
1717
"contentType": "text/plain"
18+
},
19+
{
20+
"name": "bar",
21+
"value": "Bonjour le monde"
1822
}
1923
]
2024
}

src/targets/c/libcurl/fixtures/multipart-data.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ struct curl_slist *headers = NULL;
77
headers = curl_slist_append(headers, "content-type: multipart/form-data; boundary=---011000010111000001101001");
88
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
99

10-
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nHello World\r\n-----011000010111000001101001--\r\n");
10+
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nHello World\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bar\"\r\n\r\nBonjour le monde\r\n-----011000010111000001101001--\r\n");
1111

1212
CURLcode ret = curl_easy_perform(hnd);
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
(require '[clj-http.client :as client])
22

33
(client/post "http://mockbin.com/har" {:multipart [{:name "foo"
4-
:content "Hello World"}]})
4+
:content "Hello World"} {:name "bar"
5+
:content "Bonjour le monde"}]})

src/targets/csharp/httpclient/fixtures/multipart-data.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,16 @@
1717
}
1818
}
1919
},
20+
new StringContent("Bonjour le monde")
21+
{
22+
Headers =
23+
{
24+
ContentDisposition = new ContentDispositionHeaderValue("form-data")
25+
{
26+
Name = "bar",
27+
}
28+
}
29+
},
2030
},
2131
};
2232
using (var response = await client.SendAsync(request))
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
var client = new RestClient("http://mockbin.com/har");
22
var request = new RestRequest(Method.POST);
33
request.AddHeader("content-type", "multipart/form-data; boundary=---011000010111000001101001");
4-
request.AddParameter("multipart/form-data; boundary=---011000010111000001101001", "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nHello World\r\n-----011000010111000001101001--\r\n", ParameterType.RequestBody);
4+
request.AddParameter("multipart/form-data; boundary=---011000010111000001101001", "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nHello World\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bar\"\r\n\r\nBonjour le monde\r\n-----011000010111000001101001--\r\n", ParameterType.RequestBody);
55
IRestResponse response = client.Execute(request);

src/targets/go/native/fixtures/multipart-data.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ func main() {
1111

1212
url := "http://mockbin.com/har"
1313

14-
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nHello World\r\n-----011000010111000001101001--\r\n")
14+
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nHello World\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bar\"\r\n\r\nBonjour le monde\r\n-----011000010111000001101001--\r\n")
1515

1616
req, _ := http.NewRequest("POST", url, payload)
1717

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
POST /har HTTP/1.1
22
Content-Type: multipart/form-data; boundary=---011000010111000001101001
33
Host: mockbin.com
4-
Content-Length: 171
4+
Content-Length: 266
55

66
-----011000010111000001101001
77
Content-Disposition: form-data; name="foo"; filename="hello.txt"
88
Content-Type: text/plain
99

1010
Hello World
11+
-----011000010111000001101001
12+
Content-Disposition: form-data; name="bar"
13+
14+
Bonjour le monde
1115
-----011000010111000001101001--

src/targets/java/asynchttp/fixtures/multipart-data.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
AsyncHttpClient client = new DefaultAsyncHttpClient();
22
client.prepare("POST", "http://mockbin.com/har")
33
.setHeader("content-type", "multipart/form-data; boundary=---011000010111000001101001")
4-
.setBody("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nHello World\r\n-----011000010111000001101001--\r\n")
4+
.setBody("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nHello World\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bar\"\r\n\r\nBonjour le monde\r\n-----011000010111000001101001--\r\n")
55
.execute()
66
.toCompletableFuture()
77
.thenAccept(System.out::println)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
HttpRequest request = HttpRequest.newBuilder()
22
.uri(URI.create("http://mockbin.com/har"))
33
.header("content-type", "multipart/form-data; boundary=---011000010111000001101001")
4-
.method("POST", HttpRequest.BodyPublishers.ofString("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nHello World\r\n-----011000010111000001101001--\r\n"))
4+
.method("POST", HttpRequest.BodyPublishers.ofString("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nHello World\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bar\"\r\n\r\nBonjour le monde\r\n-----011000010111000001101001--\r\n"))
55
.build();
66
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
77
System.out.println(response.body());

src/targets/java/okhttp/fixtures/multipart-data.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
OkHttpClient client = new OkHttpClient();
22

33
MediaType mediaType = MediaType.parse("multipart/form-data; boundary=---011000010111000001101001");
4-
RequestBody body = RequestBody.create(mediaType, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nHello World\r\n-----011000010111000001101001--\r\n");
4+
RequestBody body = RequestBody.create(mediaType, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nHello World\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bar\"\r\n\r\nBonjour le monde\r\n-----011000010111000001101001--\r\n");
55
Request request = new Request.Builder()
66
.url("http://mockbin.com/har")
77
.post(body)

0 commit comments

Comments
 (0)