我正在制作一个 HTTP 客户端,我需要在其中发送 HTTP 获取请求以获取数据。我正在使用 boost asio 库,因此我无法使用任何标准的 url 编码库。
这是我从 netcat 和 Mozilla 得到的(一个典型的 get 请求)
localhost:2000/questions/10838702/how-to-encode or-d ecode-url-in-objective-c
获取请求网址
F:\pydev>nc -l -p 2000
GET /questions/10838702/how-to-encode%20or-d%20%20%20ecode-url-in-objective-c HTTP/1.1
Host: localhost:2000
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
我发现 Mozilla 只对 url 的查询部分进行编码。
我试过这个 url 编码网页 http://meyerweb.com/eric/tools/dencoder/
它对以下网址进行编码
localhost:2000/questions/10838702/how-to-encode or-d ecode-url-in-objective-c
至
localhost%3A2000%2Fquestions%2F10838702%2Fhow-to-encode%20or-d%20%20%20ecode-url-in-objective-c
谁能建议我在哪里使用 URL 编码?