Poco:http中传输json对象
来源:互联网 发布:怎样评价井柏然 知乎 编辑:程序博客网 时间:2024/05/10 20:21
Poco中封装了表单提交的功能,提交表单是非常简单的。
Net::HTMLForm form;form.add("name", "jack");URI url("http://httpbin.org/post");Net::HTTPClientSession session(url.getHost(), url.getPort());Net::HTTPRequest req(Net::HTTPRequest::HTTP_POST, url.getPathAndQuery());form.prepareSubmit(req);auto& ostr = session.sendRequest(req);form.write(ostr);Net::HTTPResponse resp;session.receiveResponse(resp);
如今在http中传输json也是比较常见的,但是Poco并没有封装相关接口。
先看看HTMLForm内部做了些什么
void HTMLForm::prepareSubmit(HTTPRequest& request){if (request.getMethod() == HTTPRequest::HTTP_POST || request.getMethod() == HTTPRequest::HTTP_PUT){if (_encoding == ENCODING_URL){request.setContentType(_encoding);request.setChunkedTransferEncoding(false);Poco::CountingOutputStream ostr;writeUrl(ostr);request.setContentLength(ostr.chars());}else{_boundary = MultipartWriter::createBoundary();std::string ct(_encoding);ct.append("; boundary=\"");ct.append(_boundary);ct.append("\"");request.setContentType(ct);}if (request.getVersion() == HTTPMessage::HTTP_1_0){request.setKeepAlive(false);request.setChunkedTransferEncoding(false);}else if (_encoding != ENCODING_URL){request.setChunkedTransferEncoding(true);}}else{std::string uri = request.getURI();std::ostringstream ostr;writeUrl(ostr);uri.append("?");uri.append(ostr.str());request.setURI(uri);}}
很简单,只有在使用了post并且content-type为"application/x-www-form-urlencoded"时才会写入表单,所以我们可以直接操作Request。
JSON::Object jo;jo.set("name", "jack");std::ostringstream ss;jo.stringify(ss);std::string s;s = ss.str();URI url("http://httpbin.org/post");Net::HTTPClientSession session(url.getHost(), url.getPort());Net::HTTPRequest req(Net::HTTPRequest::HTTP_POST, url.getPathAndQuery());//form.prepareSubmit(req);req.setChunkedTransferEncoding(false);req.setContentType("application/json");req.setContentLength(s.length());session.sendRequest(req) << s;Net::HTTPResponse resp;session.receiveResponse(resp);
0 0
- Poco:http中传输json对象
- POCO库下访问http获取json串
- Unity利用WWW http传输Json数据
- http post请求接口 传输json
- poco JSON 的使用
- poco::json使用
- POCO中Event同步对象的POSIX实现
- 页面传输Json对象至Action(Strust2)
- JSON对象序列化传输格式设置
- POCO的主动对象
- Poco库http客户端代码
- stuts2中使用json传输数据
- PHP中,Json AJax传输数据
- Mule ESB HTTP传输JSON格式字符串解决方案
- Springboot 实现 Restful 服务,基于 HTTP / JSON 传输
- Springboot 实现 Restful 服务,基于 HTTP / JSON 传输
- Springboot 实现 Restful 服务,基于 HTTP / JSON 传输
- Springboot 实现 Restful 服务,基于 HTTP / JSON 传输
- openssl数字证书常见格式与协议介绍
- 实习一周的工作总结
- 自定义NumberPicker,更改字体颜色、分割线样式
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)
- Centos pptp vpn 一键安装脚本
- Poco:http中传输json对象
- C语言凯撒加密
- 【Augmented Reality】增强现实中的光学透射式头盔显示器的标定深入
- java String StringBuffer StringBuilder
- redis安装
- ACM篇:POJ 2200 --A Card Trick
- 飞思卡尔i.MX 6Quad Android 4.2.2的LVDS屏幕驱动移植
- jq 计算div宽度--innerwidth,outerwidth,width
- linux下nginx+php+mysql环境搭建