作者:Random, | 来源:互联网 | 2023-10-12 09:52
我已经在Java中创建了到私有API的连接StringurlRequesthttps:localhost:8080orderscreate;Stringusernametes
我已经在Java中创建了到私有API的连接
String urlRequest = "https://localhost:8080/orders/create";
String username = "test";
String password = "test";
String certificatePass = "test";
byte[] authEncBytes = Base64.getEncoder().encode((username + ":" + password).getBytes());
URL url = new URL(urlRequest);
HttpURLConnection cOnn= (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Basic " + new String(authEncBytes));
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Accept", "application/json");
conn.setDoOutput(true);
conn.setDoInput(true);
InputStream is = conn.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
is.close();
初始传递之后,连接似乎保持打开状态,因为从头开始运行代码时,HttpURLConnection在conn.setRequestMethod(“ POST”);处引发异常,
“Can’t reset method: already connected”
我设法以某种方式将其关闭,我不知道自己做了什么,但是有人知道这里的问题可能是什么吗?在此期间,我重新启动了PC,但仍会在conn.setRequestMethod(“ POST”);上引发异常,我不知道如何在重新启动之间保持连接.在尝试设置请求方法之前,我还尝试添加conn.disconnect(),但这似乎也不起作用.唯一有所作为的是更改URL,但是我只能连接一次,每次下一次运行代码都会给我同样的异常.
如何正确关闭连接?
解决方法:
今天又遇到了问题,问题出在调试模式下.我当时在打电话给connect,我想在测试时会这样,以防万一有人不知道,表达式确实会影响您的变量并可以更改内存中的内容.例如,具有:
int a = 5;
System.out.println(a);
在您的代码中,并且“表达式”列表中的a = 6,System.out.println(a)将输出6,而不是5.
删除表达式解决了我的问题.