gpt4 book ai didi

java - HttpURLConnection 中的内容长度

转载 作者:行者123 更新时间:2023-12-02 11:56:05 26 4
gpt4 key购买 nike

我正在尝试将 x-www-form-urlencoded 格式的正文发送到我的本地 Web API。我可以毫无问题地进行 GET 。这是我所做的:

    String urlParameters = "user=User&label=GPU+Temp&file=src%2FDataSource0.txt&backgroundColor=rgb(255%2C255%2C255%2C0)&borderColor=rgb(255%2C255%2C255%2C0)&pointBorderColor=rgb(255%2C255%2C255%2C0)&pointHoverBackgroundColor=rgb(255%2C255%2C255%2C0)&pointHoverBorderColor=rgb(255%2C255%2C255%2C0)&min=0&max=100&stepSize=50";

byte[] postData = urlParameters.getBytes(Charset.forName("UTF-8"));
int postDataLength = postData.length;
String request = "http://192.168.1.30:6262/api/values";
URL url = new URL(request);
con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
con.setInstanceFollowRedirects(false);
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestProperty("charset", "utf-8");
con.setRequestProperty("Content-Length", Integer.toString(postDataLength));
con.connect();

java.net.ProtocolException: content-length promised 598 bytes, but received 0

这意味着我没有在 POST 中发送任何数据,这是怎么回事?

最佳答案

使用 con.setRequestProperty("Content-Length", Integer.toString(postDataLength)); 您只需发送 postDataLength 的长度,您实际上并没有设置它的 body 。为了实际将变量发送到 Web 服务,您需要在调用 connect() 之前执行此操作:

OutputStream os = con.getOutputStream();
os.write(urlParameters.getBytes("UTF-8"));
os.close();

关于java - HttpURLConnection 中的内容长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47594463/

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