即使httpCon.setRequestMethod(“ GET”); HttpURLConnection也会发送POST请求。被设置

【字号: 日期:2024-02-23浏览:40作者:雯心
如何解决即使httpCon.setRequestMethod(“ GET”); HttpURLConnection也会发送POST请求。被设置?

将httpCon.setDoOutput(true);请求方法隐式设置为POST,因为这是您要发送请求正文时的默认方法。

如果要使用GET,请删除该行并删除该OutputStreamWriter out = newOutputStreamWriter(httpCon.getoutputStream());行。您无需发送GET请求的请求正文。

对于简单的GET请求,应执行以下操作:

String addr = 'http://172.26.41.18:8080/domain/list';URL url = new URL(addr);HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();httpCon.setUseCaches(false);httpCon.setAllowUserInteraction(false);httpCon.addRequestProperty('Authorization', 'Basic YWRtaW4fYFgjkl5463');System.out.println(httpCon.getResponseCode());System.out.println(httpCon.getResponseMessage());也可以看看:使用java.net.URLConnection触发和处理HTTP请求

具体问题 ,Authorization标头值的密码部分似乎未正确进行Base64编码。也许是因为示例而被打乱了,但是即使不是,我也会修复您的Base64编码方法。

解决方法

这是我的代码:

String addr = 'http://172.26.41.18:8080/domain/list';URL url = new URL(addr);HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();httpCon.setDoOutput(true);httpCon.setDoInput(true);httpCon.setUseCaches(false);httpCon.setAllowUserInteraction(false);httpCon.setRequestMethod('GET');httpCon.addRequestProperty('Authorization','Basic YWRtaW4fYFgjkl5463');httpCon.connect();OutputStreamWriter out = new OutputStreamWriter(httpCon.getOutputStream());System.out.println(httpCon.getResponseCode());System.out.println(httpCon.getResponseMessage());out.close();

我的回应是:

500服务器错误

我打开我的httpCon变量,然后看到:

POST / rest / platform / domain / list HTTP / 1.1

即使我曾经将httpCon.setRequestMethod('GET');其设置为GET,为什么也将其设置为POST ?

相关文章: