java - Java 不发送 HTTP POST 请求
问题描述
我正在实现一些简单的 java 类,以便发送HTTP
带有方法的请求,POST
以及另一个 java 类以接收它。当我通过浏览器(Chrome)或应用程序(在这种情况下我使用 Postman)发出请求
时,服务器工作正常,但是当我使用 java 发送请求时它最终会出现问题!POST
HTTP
我的发送HTTP
类是“Sender.java”,包含以下代码段:
String url = "http://localhost:8082/";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// Setting basic post request
con.setRequestMethod("POST");
//con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
//con.setRequestProperty("Content-Type","text/plain");
// Send post request
con.setDoOutput(true);
OutputStream os = con.getOutputStream();
os.write("Just Some Text".getBytes("UTF-8"));
os.flush();
os.close();
//connect to the Server(resides at Server.java)
con.connect();
我已经注释了一些代码行设置标题,例如“Accept-Language”和“Content-Type”,因为我不知道 Java 程序是否需要这些标题?
服务器是另一个名为“Server.java”的 java 程序。这是与读取HTTP
Sender.java 发出的请求相关的片段(如果需要)。
int servPort = 8082;
// Create a server socket to accept HTTP client connection requests
HttpServer server = HttpServer.create(new InetSocketAddress(servPort), 0);
System.out.println("server started at " + servPort);
server.createContext("/", new PostHandler());//PostHandler implements HttpHandler
server.setExecutor(null);
server.start();
我想要的只是HTTP
使用该方法发送一个纯文本作为我的请求的正文Post
。我已经阅读了很多网站,甚至在这个网站上的相关问题。但是还是不行。换句话说,每当我HTTP
从“Sender.java”创建一个请求时,“Server.java”上什么都不会出现。我只想知道我的片段有什么问题,我应该如何解决?
解决方案
我对此进行了测试,并且可以正常工作:
//Sender.java
String url = "http://localhost:8082/";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
OutputStream os = con.getOutputStream();
os.write("Just Some Text".getBytes("UTF-8"));
os.flush();
int httpResult = con.getResponseCode();
con.disconnect();
如您所见,连接不是必需的。关键线是
int httpResult = con.getResponseCode();
推荐阅读
- javascript - 提交之前是否应该通过 javascript 验证表单?
- mongodb - 在查询特定 ID 时,我在 graphql 中遇到错误
- ios - 在这种情况下,如何解决警告“在此块中强烈捕获'自我'可能会导致保留周期”?
- oracle11g - 第 10 行:错误:ORA-00907 缺少右括号 | 甲骨文 11g
- javascript - 如何遍历 jquery 中的对象数组。?
- javascript - 使用电子显示或读取操作系统或系统中存在的所有文件和文件夹
- android - 颤振运行无法确定任务':app:compileDebugJavaWithJavac'的依赖关系
- php - Laravel 重定向检测
- cuda - CUDA 中的持久缓冲区
- java - Camel RabbitMQ 到 REST 端点 SpringBootTest 失败