问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

openfire可以使用restful吗

发布网友 发布时间:2022-05-06 16:25

我来回答

2个回答

热心网友 时间:2023-10-11 20:58

由于项目的需要,要做一个C++的http请求客户端实现上传数据到服务端的功能,服务端用的是Spring MVC实现的Restful Web Service,起初设计时在服务端以byte[]的形式接受数据,毕竟服务端用java写的,把接收到的数据流解析成相应的文件这是完全可行的。

如果写过Java或者其他语言的Http请求的人都知道,请求方式可以分GET和POST两种,不过GET传递的数据充其量只是简单类型的参数而已,在请求时的数据格式如代码,这是请求http://www.ip138.com:8080/search.asp?mobile=1565888&action=mobile站点的请求参数:

[html] view plaincopy
GET /search.asp?mobile=1565888&action=mobile HTTP/1.1
Host: www.ip138.com:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
以上是用FireFox的插件Live Http Headers获取的数据,而且这个插件可以自行编辑参数定制HTTP请求,方便编程的测试工作,具体使用可以查阅资料。这里面好多参数并不是必须的,但是为了模拟浏览器的效果最好设置一下。另外对于GET请求不需要设置Content-Type和Content-Length参数,通常这两个也是成对出现的。User-Agent表示请求客户端的浏览器和OS信息,这里模拟浏览器访问可以自己定制。
POST请求的数据是放在请求体里的,具体信息可参考http://blog.csdn.net/yc0188/article/details/4741871,严格按照要求组织请求数据即可。注意请求头和请求数据之间的空行。这是一个Web系统的POST请求数据:

[html] view plaincopy
POST /myproject/infoUpdate HTTP/1.1
Host: 192.168.52.250:8088
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://192.168.52.250:8088/myproject/infoUpdate.action
Content-Type: application/x-www-form-urlencoded
Content-Length: 24

infoId=3¤tPage=1
另外在具体组织请求信息时,Windows下是用\r\n作为换行符的,但是在linux下这样用也不错,虽然linux的换行符是\n。
[cpp] view plaincopy
strcat(requestStr, "POST ");
strcat(requestStr, api);
strcat(requestStr, " HTTP/1.1\r\n");
strcat(requestStr, "Accept: application/x-ms-application, image/gif, "
"application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, "
"application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n");
strcat(requestStr, "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/17.0 Firefox/17.0\r\n");
strcat(requestStr, "Accept-Language: zh-CN,en-US;q=0.5\r\n");
strcat(requestStr, "Accept-Encoding: gzip, deflate\r\n");
strcat(requestStr, "Host: ");
strcat(requestStr, hostname);
strcat(requestStr, "\r\n");
POST简单的数据以上就可以做到,但是对于上传文件呢。文件通常是二进制形式的,也就是要传输流。不过我们对struts2或者Spring MVC的上传文件表单不陌生,于是我监测了一个上传文件操作的请求数据:

热心网友 时间:2023-10-11 20:59

由于项目的需要,要做一个C++的http请求客户端实现上传数据到服务端的功能,服务端用的是Spring MVC实现的Restful Web Service,起初设计时在服务端以byte[]的形式接受数据,毕竟服务端用java写的,把接收到的数据流解析成相应的文件这是完全可行的。

如果写过Java或者其他语言的Http请求的人都知道,请求方式可以分GET和POST两种,不过GET传递的数据充其量只是简单类型的参数而已,在请求时的数据格式如代码,这是请求http://www.ip138.com:8080/search.asp?mobile=1565888&action=mobile站点的请求参数:

[html] view plaincopy
GET /search.asp?mobile=1565888&action=mobile HTTP/1.1
Host: www.ip138.com:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
以上是用FireFox的插件Live Http Headers获取的数据,而且这个插件可以自行编辑参数定制HTTP请求,方便编程的测试工作,具体使用可以查阅资料。这里面好多参数并不是必须的,但是为了模拟浏览器的效果最好设置一下。另外对于GET请求不需要设置Content-Type和Content-Length参数,通常这两个也是成对出现的。User-Agent表示请求客户端的浏览器和OS信息,这里模拟浏览器访问可以自己定制。
POST请求的数据是放在请求体里的,具体信息可参考http://blog.csdn.net/yc0188/article/details/4741871,严格按照要求组织请求数据即可。注意请求头和请求数据之间的空行。这是一个Web系统的POST请求数据:

[html] view plaincopy
POST /myproject/infoUpdate HTTP/1.1
Host: 192.168.52.250:8088
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://192.168.52.250:8088/myproject/infoUpdate.action
Content-Type: application/x-www-form-urlencoded
Content-Length: 24

infoId=3¤tPage=1
另外在具体组织请求信息时,Windows下是用\r\n作为换行符的,但是在linux下这样用也不错,虽然linux的换行符是\n。
[cpp] view plaincopy
strcat(requestStr, "POST ");
strcat(requestStr, api);
strcat(requestStr, " HTTP/1.1\r\n");
strcat(requestStr, "Accept: application/x-ms-application, image/gif, "
"application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, "
"application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n");
strcat(requestStr, "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/17.0 Firefox/17.0\r\n");
strcat(requestStr, "Accept-Language: zh-CN,en-US;q=0.5\r\n");
strcat(requestStr, "Accept-Encoding: gzip, deflate\r\n");
strcat(requestStr, "Host: ");
strcat(requestStr, hostname);
strcat(requestStr, "\r\n");
POST简单的数据以上就可以做到,但是对于上传文件呢。文件通常是二进制形式的,也就是要传输流。不过我们对struts2或者Spring MVC的上传文件表单不陌生,于是我监测了一个上传文件操作的请求数据:

热心网友 时间:2023-10-11 20:58

由于项目的需要,要做一个C++的http请求客户端实现上传数据到服务端的功能,服务端用的是Spring MVC实现的Restful Web Service,起初设计时在服务端以byte[]的形式接受数据,毕竟服务端用java写的,把接收到的数据流解析成相应的文件这是完全可行的。

如果写过Java或者其他语言的Http请求的人都知道,请求方式可以分GET和POST两种,不过GET传递的数据充其量只是简单类型的参数而已,在请求时的数据格式如代码,这是请求http://www.ip138.com:8080/search.asp?mobile=1565888&action=mobile站点的请求参数:

[html] view plaincopy
GET /search.asp?mobile=1565888&action=mobile HTTP/1.1
Host: www.ip138.com:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
以上是用FireFox的插件Live Http Headers获取的数据,而且这个插件可以自行编辑参数定制HTTP请求,方便编程的测试工作,具体使用可以查阅资料。这里面好多参数并不是必须的,但是为了模拟浏览器的效果最好设置一下。另外对于GET请求不需要设置Content-Type和Content-Length参数,通常这两个也是成对出现的。User-Agent表示请求客户端的浏览器和OS信息,这里模拟浏览器访问可以自己定制。
POST请求的数据是放在请求体里的,具体信息可参考http://blog.csdn.net/yc0188/article/details/4741871,严格按照要求组织请求数据即可。注意请求头和请求数据之间的空行。这是一个Web系统的POST请求数据:

[html] view plaincopy
POST /myproject/infoUpdate HTTP/1.1
Host: 192.168.52.250:8088
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://192.168.52.250:8088/myproject/infoUpdate.action
Content-Type: application/x-www-form-urlencoded
Content-Length: 24

infoId=3¤tPage=1
另外在具体组织请求信息时,Windows下是用\r\n作为换行符的,但是在linux下这样用也不错,虽然linux的换行符是\n。
[cpp] view plaincopy
strcat(requestStr, "POST ");
strcat(requestStr, api);
strcat(requestStr, " HTTP/1.1\r\n");
strcat(requestStr, "Accept: application/x-ms-application, image/gif, "
"application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, "
"application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n");
strcat(requestStr, "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/17.0 Firefox/17.0\r\n");
strcat(requestStr, "Accept-Language: zh-CN,en-US;q=0.5\r\n");
strcat(requestStr, "Accept-Encoding: gzip, deflate\r\n");
strcat(requestStr, "Host: ");
strcat(requestStr, hostname);
strcat(requestStr, "\r\n");
POST简单的数据以上就可以做到,但是对于上传文件呢。文件通常是二进制形式的,也就是要传输流。不过我们对struts2或者Spring MVC的上传文件表单不陌生,于是我监测了一个上传文件操作的请求数据:

热心网友 时间:2023-10-11 20:59

由于项目的需要,要做一个C++的http请求客户端实现上传数据到服务端的功能,服务端用的是Spring MVC实现的Restful Web Service,起初设计时在服务端以byte[]的形式接受数据,毕竟服务端用java写的,把接收到的数据流解析成相应的文件这是完全可行的。

如果写过Java或者其他语言的Http请求的人都知道,请求方式可以分GET和POST两种,不过GET传递的数据充其量只是简单类型的参数而已,在请求时的数据格式如代码,这是请求http://www.ip138.com:8080/search.asp?mobile=1565888&action=mobile站点的请求参数:

[html] view plaincopy
GET /search.asp?mobile=1565888&action=mobile HTTP/1.1
Host: www.ip138.com:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
以上是用FireFox的插件Live Http Headers获取的数据,而且这个插件可以自行编辑参数定制HTTP请求,方便编程的测试工作,具体使用可以查阅资料。这里面好多参数并不是必须的,但是为了模拟浏览器的效果最好设置一下。另外对于GET请求不需要设置Content-Type和Content-Length参数,通常这两个也是成对出现的。User-Agent表示请求客户端的浏览器和OS信息,这里模拟浏览器访问可以自己定制。
POST请求的数据是放在请求体里的,具体信息可参考http://blog.csdn.net/yc0188/article/details/4741871,严格按照要求组织请求数据即可。注意请求头和请求数据之间的空行。这是一个Web系统的POST请求数据:

[html] view plaincopy
POST /myproject/infoUpdate HTTP/1.1
Host: 192.168.52.250:8088
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://192.168.52.250:8088/myproject/infoUpdate.action
Content-Type: application/x-www-form-urlencoded
Content-Length: 24

infoId=3¤tPage=1
另外在具体组织请求信息时,Windows下是用\r\n作为换行符的,但是在linux下这样用也不错,虽然linux的换行符是\n。
[cpp] view plaincopy
strcat(requestStr, "POST ");
strcat(requestStr, api);
strcat(requestStr, " HTTP/1.1\r\n");
strcat(requestStr, "Accept: application/x-ms-application, image/gif, "
"application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, "
"application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n");
strcat(requestStr, "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/17.0 Firefox/17.0\r\n");
strcat(requestStr, "Accept-Language: zh-CN,en-US;q=0.5\r\n");
strcat(requestStr, "Accept-Encoding: gzip, deflate\r\n");
strcat(requestStr, "Host: ");
strcat(requestStr, hostname);
strcat(requestStr, "\r\n");
POST简单的数据以上就可以做到,但是对于上传文件呢。文件通常是二进制形式的,也就是要传输流。不过我们对struts2或者Spring MVC的上传文件表单不陌生,于是我监测了一个上传文件操作的请求数据:
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
茶映人生:苦尽甘来 海尔冰箱冷藏室和冷冻室都是空空的通上电工作会更耗电吗? 上菱冰箱用过7年了,1米5高有点大,我每天冰箱里面只冻半斤肉,冷藏室其它... 结婚前个人的保险结婚后转成存单是属于个人财产还是夫妻双方的财产_百 ... 六个月宝宝大便水样蛋花怎么办 宝宝拉蛋花样便怎么办 ...张仙亲送玉麒麟,一家老少皆欢喜,祖德宗功信可凭。 我见青山多妩媚,料青山见我应如是意思 料青山见我应如是的意思_百度知... 电脑导航用哪个比较好电脑用什么网址导航哪个更好用 电脑看地图哪个好电脑上的哪个地图软件好 南方中证500etf联接会分红吗 钱充到网银的电子现金怎么用 虚拟机openfire服务器怎么进web页面 我瑞安的,今年中考550分,可以进杭州那些学校? 手机号码绑定了一个不用的,怎么解除? 新托福54分去美国读本科可以上什么学校?秋季入学的申请截止日期是什么时候? 托福560是什么水平? openfire 需要tomcat吗 如何使用diamond cut dc8 2015温州中考各科总分是多少 托福成绩450-500分相当于什么水平 如何使用diamond cut dc8 v8.13 托福一战54分,下一次考试是在9月8日,怎么样能上90分 以下为网友对Diamond Cut Live Forensics怎么样及好不好用的评价 (跪求)请专业人事估计下2009年中考瑞安普高最低分数线大概是多少? 英语托福要达到什么水平? 托福考试难度与水平 dc forensics10怎么降低噪音 谁知到 TOEFL iBT 48分相当于什么水平 瑞安今年中考状元是那所学校 富国沪深300指数增强(100038)和南方中证500指数ETF联接(160119)在天天基金网 如何在客户端注册openfire用户的邮件信息? 理财通南方中证500ETF联接是什么? 求助:openfire怎么处理客户端发来的消息,并且怎么给客户端回复消息。有谁知道么? 鹏华中证500和南方中证500etf链接哪个好 怎么用中国银行手机银行充值电子现金账户? 解梦:梦见一桌子烫火锅吃的肉菜,已经洗好摆好,正准备吃就醒了,一点都... 怎么用中行手机银行充值电子现金账户? 自传怎么写 ? 500ETF联接 现在还适合入手吗? 表达方法有哪些?说明方法有哪些? 关于openfire:请问我们自己写的插件放入openfire服务器后,程序怎么去调用写的那插件里面的功能 openfire作为服务端,android客户端如何调用openfire接口,实现显示好友列表 初中语文的表达方式和说明方法分别有哪几种? 别人用我手机号注册,我要怎么才能解除绑定啊? 凌派汽车音响怎么调歌词 说明方法、描写手法、修辞方法、表达方式分别有哪些? libjingle写的客户端能和openfire服务器一起用吗 请帮我想想说明方法、表达方式有哪些? marrot音响如何显示歌词