gpt4 book ai didi

Android 无法使用 HttpURLConnection 发送 GET 请求

转载 作者:太空宇宙 更新时间:2023-11-03 11:41:28 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序中使用 HttpURLConnection。我将我的请求方法设置为“GET”,但是当我尝试检索输出流时,该方法被更改为“POST”!我不确定是不是这个原因,但是当我使用“POST”发送请求时,我的 JSON 服务器(我使用 JAX-RS)返回了一个空白页面。

这是我的代码 fragment :

// Create the connection
HttpURLConnection con = (HttpURLConnection) new URL(getUrl() + uriP).openConnection();
// Add cookies if necessary
if (cookies != null) {
for (String cookie : cookies) {
con.addRequestProperty("Cookie", cookie);
Log.d("JSONServer", "Added cookie: " + cookie);
}
}
con.setDoOutput(true);
con.setDoInput(true);
con.setUseCaches(false);
con.setRequestMethod("GET");
con.setConnectTimeout(20000);
// Add 'Accept' property in header otherwise JAX-RS/CXF will answer a XML stream
con.addRequestProperty("Accept", "application/json");

// Get the output stream
OutputStream os = con.getOutputStream();

// !!!!! HERE THE REQUEST METHOD HAS BEEN CHANGED !!!!!!
OutputStreamWriter wr = new OutputStreamWriter(os);
wr.write(requestP);
// Send the request
wr.flush();

谢谢你的回答。埃里克

最佳答案

但是 GET 请求应该没有内容...通过写入连接输出流,您正在将请求的性质更改为 POST。图书馆非常有助于发现您正在这样做... the doc for getOutputStream明确指出“调用此方法时,默认请求方法更改为“POST”。”

如果您需要在 GET 中将数据发送到服务器,则需要以正常方式在 URL 参数中对其进行编码。

关于Android 无法使用 HttpURLConnection 发送 GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3985766/

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