用来测试webclient post方法的服务器端的代码怎么实现的

发布于 2019-09-19 14:58:39    浏览:594
    本帖最后由 aozima 于 2019-9-19 16:48 编辑


现在再用webclient中的post方法测试连接我们自己的服务器,可是服务器那边怎么都收不到我发的数据,

测试连接rtt给的url是可以的。
估计服务器那边写的不对吧?所以想参考下,不知道可以不:D

查看更多

5 个回答
aozima
aozima 2019-09-19
拒绝白嫖,拒绝键盘侠!
http协议本身是不限制post的,不管目标是否支持post,你都可以向他post数据。

是否要接受post的数据并做处理,得由你服务器那边决定。
aozima
aozima 2019-09-19
拒绝白嫖,拒绝键盘侠!
你的测试链接是哪个? echo的话代码是这样子的


if ($_SERVER['REQUEST_METHOD'] <> 'POST')
{
echo('You method is: '.$_SERVER['REQUEST_METHOD'].', only support POST!');
exit();
}

echo file_get_contents('php://input');

?>
小菜鸟爱吃菜
小菜鸟爱吃菜 2019-09-19
This guy hasn't written anything yet
aozima 发表于 2019-9-19 16:10
http协议本身是不限制post的,不管目标是否支持post,你都可以向他post数据。

是否要接受post的数据并做处 ...


现在就是服务器那边代码有问题,要么是at socket超时后返回,要么是不潮湿返回后我这个第二次用测试程序连不上了,所以想看下rt官方怎么写的服务器
小菜鸟爱吃菜
小菜鸟爱吃菜 2019-09-19
This guy hasn't written anything yet
aozima 发表于 2019-9-19 16:57
你的测试链接是哪个? echo的话代码是这样子的


这个链接http://www.rt-thread.com/service/echo
小菜鸟爱吃菜
小菜鸟爱吃菜 2019-09-19
This guy hasn't written anything yet
    本帖最后由 aozima 于 2019-9-19 21:22 编辑


aozima 发表于 2019-9-19 16:57
你的测试链接是哪个? echo的话代码是这样子的

你看下这是我们写的,现在就是能正常返回数据,但是我要是再次用测试程序测试的话,就会说socket被使用,必须得重启网管才可以,但是用rtt测试的链接就可以多次测试,不存在问题。
哪里不对吗?感觉一样的呀
HttpContent content = (HttpContent) msg;
ByteBuf buf = content.content();
System.out.println(buf.toString(io.netty.util.CharsetUtil.UTF_8));
buf.release();

String res = "AAAAAAAAAAAAAAA";
FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1,
OK, Unpooled.wrappedBuffer(res.getBytes("UTF-8")));
response.headers().set(CONTENT_TYPE, "text/plain");
response.headers().set(CONTENT_LENGTH,
response.content().readableBytes());
if (HttpHeaders.isKeepAlive(request)) {
response.headers().set(CONNECTION, HttpHeaders.Values.KEEP_ALIVE);
}
ctx.channel().writeAndFlush(response).await();
ctx.channel().close();

撰写答案

请登录后再发布答案,点击登录
关注者
0
被浏览
594

发布
问题

分享
好友

手机
浏览

扫码手机浏览