gpt4 book ai didi

java - 无法POST,HttpURLConnection默认为GET

转载 作者:行者123 更新时间:2023-11-30 06:40:06 25 4
gpt4 key购买 nike

我尝试 POST 到某个端点,但该 URL 不允许使用 GET 方法。使用HTTPURLConnection时,我将请求方法设置为post,将doOutput设置为true。

但是由于某种原因,当我在 InputStream 上放置断点(由于缺少文件而失败)时,请求方法是 GET,并且 doOutput 为 false(只有 doInput 为 true)。这会导致 404,方法不允许 未找到,表示方法 [get] 没有匹配的处理程序。为什么它会忽略我的设置并且就像我什么也没输入一样?

String result = null;
try {
HttpURLConnection connection = (HttpURLConnection)new URL(baseUrl + getTokenPath).openConnection();

connection.setRequestMethod("POST");
connection.setRequestProperty("Accept-Charset", charset);
connection.setRequestProperty("Accept-Language", "en-US,en;q=0.8");
connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
connection.setRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString((clientid + ":" + secret).getBytes()));
connection.setDoOutput(true);


DataOutputStream wr = new DataOutputStream (
connection.getOutputStream ());

wr.writeBytes ("grant_type=client_credentials");
wr.flush ();
wr.close ();

InputStream is = connection.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
StringBuffer response = new StringBuffer();
while((line = rd.readLine()) != null) {
response.append(line);
response.append('\r');
}
result = response.toString();
rd.close();

} catch (Exception e) {
e.printStackTrace();
}

最佳答案

在从 InputStream 读取所有数据之前,请勿关闭 DataOutputStream

wr.close ();

关闭流会导致您断开连接。 Flush 足以发送 POST 请求。

wr.flush ();

关于java - 无法POST,HttpURLConnection默认为GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44505140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com