gpt4 book ai didi

java - 如何给restful请求添加参数?

转载 作者:太空宇宙 更新时间:2023-11-04 07:44:20 24 4
gpt4 key购买 nike

我使用以下代码发送 REST 请求,请求失败(401 错误),因为它需要用户名和密码。

如何将它们添加到网址中?即使我在浏览器中复制网址并将用户名和密码添加到其末尾,浏览器也会弹出登录页面,所以我想在代码中我应该添加用户名和密码参数,但如何添加?

  URL url = new URL("www.example.com/user?ID=1234");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}

我在代码中添加了以下内容,但仍然遇到 401 错误。

             conn.setRequestProperty("username", "myusername");
conn.setRequestProperty("password", "mypassword");

最佳答案

试试这个:

String params="username=myusername&password=mypassword";
conn.getOutputStream().write(params.getBytes());
conn.getOutputStream().flush();
conn.getOutputStream().close();
<小时/>

或者也许您需要对参数进行编码:

DataOutputStream dos = new DataOutputStream(conn.getOutputStream());

String postContent = URLEncoder.encode("username", "UTF-8") + "=" +
URLEncoder.encode(myusername, "UTF-8") + "&" +
URLEncoder.encode("password", "UTF-8") + "=" +
URLEncoder.encode(mypassword, "UTF-8") ;

dos.write(postContent.getBytes());
dos.flush();
dos.close();
<小时/>

关于Basic Authorization

String userPassword = username + ":" + password;
String encoding = new sun.misc.BASE64Encoder().encode(userPassword.getBytes());
URLConnection uc = url.openConnection();
uc.setRequestProperty("Authorization", "Basic " + encoding);
uc.connect();

关于java - 如何给restful请求添加参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15562717/

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