【问题标题】:Android HttpURLConnection set GET Request methodAndroid HttpURLConnection 设置 GET 请求方法
【发布时间】:2016-02-01 11:54:12
【问题描述】:

我想用 GET 方法发送 HTTP 请求,但我无法设置 GET 方法。 这是我的代码:

try {
                URL url = new URL(path);
                conn = (HttpURLConnection) url.openConnection();

                conn.setReadTimeout(10000);
                conn.setConnectTimeout(15000);
                conn.setRequestMethod("GET");
                conn.setDoInput(true);
                conn.setDoOutput(true);
Uri.Builder builder = new Uri.Builder()
                        .appendQueryParameter("p1", "123")
                        .appendQueryParameter("p2", "123");
                String query = builder.build().getEncodedQuery();
                OutputStream os = conn.getOutputStream();
                BufferedWriter writer = new BufferedWriter(
                        new OutputStreamWriter(os, "UTF-8"));
                writer.write(query);
                writer.flush();
                writer.close();
                os.close();

                conn.connect();
                Log.e("ERROR", conn.getResponseMessage());
                Log.e("ERROR", conn.getRequestMethod());
                Log.e("ERROR", String.valueOf(conn.getResponseCode()));

            } catch (Exception e) {
                Log.e("ERROR", e.getMessage());
            }

在代码中,我设置了GET方法,但是在日志上,请求方法是POST:

02-01 16:48:54.766  23799-23831/? E/ERROR﹕ Method Not Allowed
02-01 16:48:54.766  23799-23831/? E/ERROR﹕ POST
02-01 16:48:54.766  23799-23831/? E/ERROR﹕ 405

有什么问题?

【问题讨论】:

  • 请出示您的url的后半部分

标签: android httprequest httpurlconnection


【解决方案1】:

问题是

conn.setDoOutput(true); 

当设置为 true 时,请求方法更改为 POST,因为 GET 或 DELETE 不能有请求正文

【讨论】:

  • 是的,你是对的!它现在正在使用 GET 方法。谢谢!
  • 现在又来了一个问题。如果我删除 setDoOutput 命令,则正在发送 GET 数据。也就是说,方法不支持请求正文:GET。如何绑定要发送的数据?
  • GET 不支持正文。那不是Android的东西,是http约束。您应该检查您的网络服务的文档并检查还有什么可用的。
  • 我明白了,我可以使用标头发送一些值。 conn.setRequestProperty("p1", "123");成功了!
猜你喜欢
  • 1970-01-01
  • 2019-01-09
  • 1970-01-01
  • 2012-01-01
  • 2015-05-17
  • 2012-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多