以下是我的情况:
到目前为止,我已经处理了传入的POST请求。要发送传出的POST请求,这是我在Handler中所做的。
private void sendHttpPost(String input, ChannelHandlerContext ctx) {
try {
String url = "http://localhost";
URI uri = new URI(url);
Bootstrap b = new Bootstrap();
b.group(new NioEventLoopGroup())
.channel(NioServerSocketChannel.class)
.handler(new PostRequestHandler())
.option(ChannelOption.AUTO_READ, false);
Channel f = b.connect("REMOTE_HOST", 8888).sync().channel();
HttpRequest postReq = new DefaultHttpRequest(HttpVersion.HTTP_1_1,
HttpMethod.POST, uri.getRawPath());
postReq.headers().set(HttpHeaders.Names.HOST, "localhost");
postReq.headers().set(HttpHeaders.Names.CONNECTION, HttpHeaders.Values.CLOSE);
postReq.headers().set(HttpHeaders.Names.CONTENT_TYPE,"application/x-www-form-urlencoded");
f.writeAndFlush(postReq);
// Wait for the server to close the connection.
f.closeFuture().sync();
} catch (Exception e) {
e.printStackTrace();
}
}
这显然是错误的,因为我正在处理程序中启动一个新的 Bootstrap 进程。但是,我无法在没有通道的情况下发送请求。我无法重用渠道处理程序上下文中的现有渠道。
正确的做法是什么?如何派生一个新的HttpPostRequest?任何帮助都将不胜感激。
在客户端引导代码中使用 .channel(NioSocketChannel.class)
而不是 .channel(NioServerSocketChannel.class)
。就是这样。
我正在尝试让客户端/服务器程序通过ssl交换http消息。首先,我创建了使用DefaultHttpRequest成功交换http请求的客户端和服务器程序。发送请求的代码如下所示: 客户端管道工厂包含以下内容: 服务器管道工厂包含以下内容: .... 到目前为止一切顺利。客户端发送请求,服务器接收并解码请求。使用正确的数据调用我的处理程序上的messageReceived方法。 为了启用 SSL,我
问题内容: 我一直在尝试从SO和其他站点上的大量示例中学习,但是我无法弄清楚为什么我一起学习的示例无法正常工作。我正在构建一个小型的概念验证应用程序,该应用程序可以识别语音并将其(文本)作为POST请求发送到node.js服务器。我确认了语音识别功能,并且服务器正在通过常规浏览器访问获得连接,因此我被认为是问题出在应用程序本身。我想念一些小而愚蠢的东西吗?没有引发任何错误,但是服务器从不识别连接。
我有一个javaScript代码,其中我发送了带有一些参数的http post。Post参数是一个类似于以下内容的json: 在JavaScript中,我只是打开request、设置头和发送参数。Post请求如下所示: 现在我需要在Java中进行相同的调用(由于一些内部POC需求)。为此,我做了以下几点: 但这给了我错误。 提前道谢。
我正在尝试根据下面的代码提出帖子请求: 此请求不需要身份验证,也不需要登录和密码。在邮递员那里,我可以成功地提出请求,但当我尝试执行上述代码时,我得到了: 401未经授权 我在邮递员那里模拟了错误,它给了我下面的信息: 当我在Postman中将身份验证方法更改为“No Auth”时,请求运行良好。 我想我必须在代码中设置这个选项“No Auth”,但我不知道如何设置。 我这样做: 但错误仍在继续。
发送请求 发送同步请求 Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/ Web3ClientVersion web3ClientVersion = web3.web3ClientVersion().send(); String clientVersion = web3Client
问题内容: 我正尝试从其自己的视图之一向我的Flask应用发送发布请求,但该请求一直挂起,直到我杀死服务器为止。如果我使用JavaScript进行请求,则效果很好。为什么从Python代码中不起作用? 问题答案: 在1.0之前,Flask的开发服务器默认为单线程。在这种模式下,它一次只能处理一个请求。发出请求直到接收到响应为止。您的Flask代码在一个线程中发出一个请求,然后等待。没有其他线程可以