Multipart form-data request with sttp - Scala HTTP client
How to do multipart form request using sttp library. Below is the sample curl request.
curl -X POST
http://localhost:2004/v2/api/artifacts
-H 'cache-control: no-cache'
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW'
-F file=@/Users/username/filename
Below is the scala code.
val request = sttp
.multipartBody(multipart("file", new FileInputStream(filePath)))
.post(uri"$mistApiUrl/v2/api/artifacts")
val response = request.send()
The field file
is not being sent properly.
Problem solved. Solution details here.
scala
|
show 2 more comments
How to do multipart form request using sttp library. Below is the sample curl request.
curl -X POST
http://localhost:2004/v2/api/artifacts
-H 'cache-control: no-cache'
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW'
-F file=@/Users/username/filename
Below is the scala code.
val request = sttp
.multipartBody(multipart("file", new FileInputStream(filePath)))
.post(uri"$mistApiUrl/v2/api/artifacts")
val response = request.send()
The field file
is not being sent properly.
Problem solved. Solution details here.
scala
May you attach the "not properly" send request? (e.g. mitmproxy is a nice debugging utility...)
– Aki
Jan 2 at 19:20
OnlyAccept-Encoding
header is set in the request object. Not setting thecontent-type
and boundary.
– Gowrav
Jan 2 at 19:59
I setup the port forwarding to mitmproxy. echo " rdr pass inet proto tcp from any to any port 2004 -> 127.0.0.1 port 8080 " | sudo pfctl -ef - Getting - HTTP protocol error in client request: Invalid HTTP request form (expected: authority or absolute, got: relative)
– Gowrav
Jan 2 at 20:11
Have you tried to use another sttp backend? It might be a bug in the backend that you're currently using.
– Aki
Jan 3 at 3:16
1
Works after callingfileName
function in multipart. Details here
– Gowrav
Jan 3 at 17:01
|
show 2 more comments
How to do multipart form request using sttp library. Below is the sample curl request.
curl -X POST
http://localhost:2004/v2/api/artifacts
-H 'cache-control: no-cache'
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW'
-F file=@/Users/username/filename
Below is the scala code.
val request = sttp
.multipartBody(multipart("file", new FileInputStream(filePath)))
.post(uri"$mistApiUrl/v2/api/artifacts")
val response = request.send()
The field file
is not being sent properly.
Problem solved. Solution details here.
scala
How to do multipart form request using sttp library. Below is the sample curl request.
curl -X POST
http://localhost:2004/v2/api/artifacts
-H 'cache-control: no-cache'
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW'
-F file=@/Users/username/filename
Below is the scala code.
val request = sttp
.multipartBody(multipart("file", new FileInputStream(filePath)))
.post(uri"$mistApiUrl/v2/api/artifacts")
val response = request.send()
The field file
is not being sent properly.
Problem solved. Solution details here.
scala
scala
edited Jan 3 at 17:03
Gowrav
asked Jan 2 at 16:48


GowravGowrav
404519
404519
May you attach the "not properly" send request? (e.g. mitmproxy is a nice debugging utility...)
– Aki
Jan 2 at 19:20
OnlyAccept-Encoding
header is set in the request object. Not setting thecontent-type
and boundary.
– Gowrav
Jan 2 at 19:59
I setup the port forwarding to mitmproxy. echo " rdr pass inet proto tcp from any to any port 2004 -> 127.0.0.1 port 8080 " | sudo pfctl -ef - Getting - HTTP protocol error in client request: Invalid HTTP request form (expected: authority or absolute, got: relative)
– Gowrav
Jan 2 at 20:11
Have you tried to use another sttp backend? It might be a bug in the backend that you're currently using.
– Aki
Jan 3 at 3:16
1
Works after callingfileName
function in multipart. Details here
– Gowrav
Jan 3 at 17:01
|
show 2 more comments
May you attach the "not properly" send request? (e.g. mitmproxy is a nice debugging utility...)
– Aki
Jan 2 at 19:20
OnlyAccept-Encoding
header is set in the request object. Not setting thecontent-type
and boundary.
– Gowrav
Jan 2 at 19:59
I setup the port forwarding to mitmproxy. echo " rdr pass inet proto tcp from any to any port 2004 -> 127.0.0.1 port 8080 " | sudo pfctl -ef - Getting - HTTP protocol error in client request: Invalid HTTP request form (expected: authority or absolute, got: relative)
– Gowrav
Jan 2 at 20:11
Have you tried to use another sttp backend? It might be a bug in the backend that you're currently using.
– Aki
Jan 3 at 3:16
1
Works after callingfileName
function in multipart. Details here
– Gowrav
Jan 3 at 17:01
May you attach the "not properly" send request? (e.g. mitmproxy is a nice debugging utility...)
– Aki
Jan 2 at 19:20
May you attach the "not properly" send request? (e.g. mitmproxy is a nice debugging utility...)
– Aki
Jan 2 at 19:20
Only
Accept-Encoding
header is set in the request object. Not setting the content-type
and boundary.– Gowrav
Jan 2 at 19:59
Only
Accept-Encoding
header is set in the request object. Not setting the content-type
and boundary.– Gowrav
Jan 2 at 19:59
I setup the port forwarding to mitmproxy. echo " rdr pass inet proto tcp from any to any port 2004 -> 127.0.0.1 port 8080 " | sudo pfctl -ef - Getting - HTTP protocol error in client request: Invalid HTTP request form (expected: authority or absolute, got: relative)
– Gowrav
Jan 2 at 20:11
I setup the port forwarding to mitmproxy. echo " rdr pass inet proto tcp from any to any port 2004 -> 127.0.0.1 port 8080 " | sudo pfctl -ef - Getting - HTTP protocol error in client request: Invalid HTTP request form (expected: authority or absolute, got: relative)
– Gowrav
Jan 2 at 20:11
Have you tried to use another sttp backend? It might be a bug in the backend that you're currently using.
– Aki
Jan 3 at 3:16
Have you tried to use another sttp backend? It might be a bug in the backend that you're currently using.
– Aki
Jan 3 at 3:16
1
1
Works after calling
fileName
function in multipart. Details here– Gowrav
Jan 3 at 17:01
Works after calling
fileName
function in multipart. Details here– Gowrav
Jan 3 at 17:01
|
show 2 more comments
1 Answer
1
active
oldest
votes
fileName
needs to be called upon using InputStream in multipart form-data.
val request = sttp
.multipartBody(multipart("file", new FileInputStream(filePath)).fileName(fileName))
.post(uri"$mistApiUrl/v2/api/artifacts")
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54010120%2fmultipart-form-data-request-with-sttp-scala-http-client%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
fileName
needs to be called upon using InputStream in multipart form-data.
val request = sttp
.multipartBody(multipart("file", new FileInputStream(filePath)).fileName(fileName))
.post(uri"$mistApiUrl/v2/api/artifacts")
add a comment |
fileName
needs to be called upon using InputStream in multipart form-data.
val request = sttp
.multipartBody(multipart("file", new FileInputStream(filePath)).fileName(fileName))
.post(uri"$mistApiUrl/v2/api/artifacts")
add a comment |
fileName
needs to be called upon using InputStream in multipart form-data.
val request = sttp
.multipartBody(multipart("file", new FileInputStream(filePath)).fileName(fileName))
.post(uri"$mistApiUrl/v2/api/artifacts")
fileName
needs to be called upon using InputStream in multipart form-data.
val request = sttp
.multipartBody(multipart("file", new FileInputStream(filePath)).fileName(fileName))
.post(uri"$mistApiUrl/v2/api/artifacts")
answered Jan 4 at 6:30


GowravGowrav
404519
404519
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54010120%2fmultipart-form-data-request-with-sttp-scala-http-client%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
May you attach the "not properly" send request? (e.g. mitmproxy is a nice debugging utility...)
– Aki
Jan 2 at 19:20
Only
Accept-Encoding
header is set in the request object. Not setting thecontent-type
and boundary.– Gowrav
Jan 2 at 19:59
I setup the port forwarding to mitmproxy. echo " rdr pass inet proto tcp from any to any port 2004 -> 127.0.0.1 port 8080 " | sudo pfctl -ef - Getting - HTTP protocol error in client request: Invalid HTTP request form (expected: authority or absolute, got: relative)
– Gowrav
Jan 2 at 20:11
Have you tried to use another sttp backend? It might be a bug in the backend that you're currently using.
– Aki
Jan 3 at 3:16
1
Works after calling
fileName
function in multipart. Details here– Gowrav
Jan 3 at 17:01