关于android上HttpURLConnections的问题。(强制转换URLConnection、url.openConnection、getOutPutStream()…)

关于android上HttpURLConnections的问题。(强制转换URLConnection、url.openConnection、getOutPutStream()…),android,http-post,httpurlconnection,urlconnection,Android,Http Post,Httpurlconnection,Urlconnection,我在创建httpurlconnection(或httpsurlconnection)时遇到问题。实际上,这是关于在强制转换url.openconnection.Before之后设置连接头的,运行相同代码的代码现在不运行。我不明白。(例外:已连接…或类似…) 有时它运行到httpConn.getOutPutStream()此时出现错误“java.net.ProtocolException:OutputStream不可用,因为请求头已经发送!” 我的错在哪里 在我使用代码之前:所有代码都是(我还有另

我在创建httpurlconnection(或httpsurlconnection)时遇到问题。实际上,这是关于在强制转换url.openconnection.Before之后设置连接头的,运行相同代码的代码现在不运行。我不明白。(例外:已连接…或类似…)

有时它运行到httpConn.getOutPutStream()此时出现错误“java.net.ProtocolException:OutputStream不可用,因为请求头已经发送!”

我的错在哪里

在我使用代码之前:所有代码都是(我还有另一个关于的任务)

我试着在施法后设置一些设置,但结果是一样的。控制装置正在工作,但在施法后我无法设置任何东西

更改代码:

        URL url = new URL(getUrl());
        conn = url.openConnection();
        conn.setAllowUserInteraction(false);
        conn.setConnectTimeout(10000);
        conn.setRequestProperty("Accept-Charset", "utf-8");
        conn.setRequestProperty("Content-Type",
                "text/xml; charset=utf-8");
        conn.setRequestProperty("SOAPAction",
                "http://tempuri.org/IAuthenticationServiceNew/Authenticate");
        conn.setRequestProperty("Software-Version", AppData.VERSION);
        conn.setDoOutput(true);
        httpConn = (HttpsURLConnection) conn;
        httpConn.setChunkedStreamingMode(getParams().getBytes("UTF8").length);
        httpConn.setInstanceFollowRedirects(true);

        httpConn.connect();
        os = httpConn.getOutputStream();
        os.write(getParams().getBytes("UTF8"));
这是对的
“httpConn.setInstanceFlowRedirects(true)”连接并向服务器发送头。我关闭这个密码

        URL url = new URL(getUrl());
        httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setDoInput(true);
        httpConn.setDoOutput(true);
        httpConn.setAllowUserInteraction(false);
        httpConn.setUseCaches(false);
        httpConn.setConnectTimeout(10000);
        httpConn.setRequestProperty("Accept-Charset", "utf-8");
        httpConn.setRequestProperty("Content-Type",
                "text/xml; charset=utf-8");
        httpConn.setRequestProperty("SOAPAction",
                "http://tempuri.org/IAuthenticationServiceNew/"
                        + conTypeString);
        httpConn.setRequestProperty("Software-Version", AppData.VERSION);
        httpConn.setRequestMethod("POST");
        httpConn.setChunkedStreamingMode(0);
        os = httpConn.getOutputStream();
        os.write(getParams().getBytes("UTF8"));
这是对的
“httpConn.setInstanceFlowRedirects(true)”连接并向服务器发送头。我关闭这个密码

        URL url = new URL(getUrl());
        httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setDoInput(true);
        httpConn.setDoOutput(true);
        httpConn.setAllowUserInteraction(false);
        httpConn.setUseCaches(false);
        httpConn.setConnectTimeout(10000);
        httpConn.setRequestProperty("Accept-Charset", "utf-8");
        httpConn.setRequestProperty("Content-Type",
                "text/xml; charset=utf-8");
        httpConn.setRequestProperty("SOAPAction",
                "http://tempuri.org/IAuthenticationServiceNew/"
                        + conTypeString);
        httpConn.setRequestProperty("Software-Version", AppData.VERSION);
        httpConn.setRequestMethod("POST");
        httpConn.setChunkedStreamingMode(0);
        os = httpConn.getOutputStream();
        os.write(getParams().getBytes("UTF8"));