Comments (3)
This doesn't appear to be a bug, it looks like you have incorrectly escaped query string parameters. I'd recommend using a library for properly building up URLs that handles escaping correctly.
from http-client.
But one thing still embarrassing me.
That's when I use setRequestQueryString to set same JSON string to one of the parameters, it's works with no exceptions. It makes me think, that parser must do the same thing with a string.
Function req4 works right.
req4 = setRequestQueryString [ ("keyboard", Just "{\"buttons\":[{\"prop\":\"val\"}]] . setRequestPath "/method/messages.send" . setRequestPort 443 . setRequestSecure True . setRequestHost "myhost.com" $ defaultRequest
from http-client.
@ddd356 That's because you're not parsing the URL in your last example. setRequestQueryString
encodes the query parameters properly:
> getUri $ setQueryString [("foo", Just "[]")] defaultRequest
http://localhost/?foo=%5B%5D
The resulting URI can be parsed just fine:
> getUri $ parseRequest_ "http://localhost/?foo=%7B%7D"
http://localhost/?foo=%7B%7D
While unescaped brackets can't be parsed:
> getUri $ parseRequest_ "http://localhost/?foo=[]"
*** Exception: InvalidUrlException "http://localhost/?foo=[]" "Invalid URL"
from http-client.
Related Issues (20)
- expose Network.HTTP.Proxy? HOT 1
- http-conduit-2.3.8.1 test/main.hs:50:1: error: Could not load module ‘Network.Connection’ HOT 1
- 0.3.6.2 is a breaking change due to crypton internals HOT 1
- http-conduit fails to build with GHC 9.4 and aeson 2.2.0.0 HOT 5
- Why this library handles `Ctrl-C`?
- `x-partial` warning by GHC 9.8
- Allow deepseq-1.5 for GHC 9.8
- Not compatible with `aeson > 2.0.0.0` HOT 1
- Misbehavior in the presence of HTTP 103 early hints HOT 1
- `withConnection` questions HOT 3
- why was `AI_NUMERICHOST` removed in `http-client-openssl`? HOT 4
- Content-Type: application/json; charset=utf-8 can cause issues and may be incorrect HOT 2
- don't hide internal modules
- zlib1.dll is missing HOT 1
- Options to specify `http_proxy` and `https_proxy` explicitly
- Multipart file parts without Content-Type HOT 3
- warp-3.4 not allowed
- http-conduit: Space leaks when using wide `ResourceT`
- http-conduit: `Request`s may be retained in `Response`s
- VPN kill switch, causing infinite hang of download
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from http-client.