मुझे httpurlconnection(या httpsurlconnection) बनाने में समस्या है। असल में यह url.openconnection कास्टिंग करने के बाद कनेक्शन हेडर सेट करने के बारे में है। चलने से पहले एक ही कोड अब नहीं चल रहा है। मैं समझ नहीं पाया। (अपवाद: पहले से ही जुड़ा हुआ है... या पसंद है..)

कभी-कभी यह httpConn.getOutPutStream(); तक चलता है इस समय यह त्रुटि देता है "java.net.ProtocolException: OutputStream अनुपलब्ध है क्योंकि अनुरोध शीर्षलेख पहले ही भेजे जा चुके हैं!"

मेरी गलती कहाँ है ??

इससे पहले कि मैं कोड का उपयोग करता: सभी कोड यहां (मेरे पास इस कोड, भी)

URL url = new URL(getUrl());
URLConnection conn = url.openConnection();
HttpURLConnection httpConn=(HttpURLConnection)conn; /*or HttpsURLConnection*/
httpConn.set...
...
httpConn.connect();
...

मैं कास्टिंग के बाद कुछ सेटिंग्स सेट करने का प्रयास करता हूं, लेकिन परिणाम समान होता है। conn.set.. काम कर रहे हैं, लेकिन कास्ट करने के बाद मैं कुछ भी सेट नहीं कर सकता ...

परिवर्तित कोड:

        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"));
1
atasoyh 17 अक्टूबर 2011, 11:55

1 उत्तर

यह सही है!
"httpConn.setInstanceFollowRedirects(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"));
1
Paul Verest 30 सितंबर 2014, 06:01