2010-01-20 22 views
7

आप HTTP PUT कैसे करते हैं? जिस वर्ग का मैं उपयोग कर रहा हूं, ऐसा लगता है कि यह एक पुट कर रहा है लेकिन एंडपॉइंट इसका इलाज कर रहा है जैसे कि मैंने एक जीईटी किया था। क्या मैं गलत हूं?जावा: HTTP PUT HttpURLConnection

URL url = new URL("https://..."); 
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
conn.setDoOutput(true); 
conn.setRequestMethod("PUT"); 

OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); 

writer.write(xmlString); 
writer.close(); 

System.out.println(conn.getRequestMethod()); 
String response = readInputStream(conn.getInputStream()); 
System.out.println(response); 

है कौन सा मुद्रण:

PUT 
<same content as doing a GET> 

मैं नहीं बल्कि एक और पुस्तकालय शामिल नहीं करता है, तो यह एक काम कर सकता हूँ ...

उत्तर

5

वहाँ एक आसान तरीका पता लगाने के लिए है: Wireshark चलाने के लिए और देखने के नेटवर्क पर वास्तव में क्या हो रहा है। मैंने पाया है कि इस तरह के मुद्दे का निदान करने का सबसे विश्वसनीय तरीका है - आपके क्लाइंट में बग हो सकती है, लाइब्रेरी में बग हो सकती है, सर्वर में बग हो सकती है, लेकिन वायरशर्क आपको दिखाएगा कि वास्तव में क्या हो रहा है।

संपादित करें: ठीक है, HTTPS के लिए यह थोड़ा सा ट्रिकियर है। यदि आप विंडोज़ पर चल रहे हैं, तो आप Fiddler का उपयोग कर सकते हैं, जो प्रॉक्सी है - यदि आप अपने क्लाइंट कोड को अपने प्रमाणपत्र को स्वीकार करने के लिए राजी कर सकते हैं, तो यह HTTPS से सामना कर सकता है, लेकिन यह थोड़ा और घुसपैठ कर रहा है ... रास्ते में एक प्रॉक्सी स्पष्ट रूप से यातायात कैसा दिखता है बदलता है।

यह बेहतर होगा अगर आप इसके बजाय HTTP पर सर्वर के डीबग संस्करण से बात कर सकें। क्या यह आपके मामले में व्यवहार्य है, या सर्वर पूरी तरह से आपके नियंत्रण से बाहर है?

+0

मेरा सभी ट्रैफिक दूरस्थ सर्वर पर https है ... और वायरशर्क वहां के अंदर बहुत कुछ नहीं देख सकता है। इसे जावा से बनाम कर्ल के साथ मारना अलग दिखता है, लेकिन मुझे क्या देखना चाहिए? –

+0

अच्छा विचार। मैंने उनसे संपर्क किया और परीक्षण के लिए एक HTTP सर्वर मिला। मैंने पाया कि मेरी समस्या उनके सर्वर द्वारा अस्वीकार किए जाने वाले सामग्री-प्रकार शीर्षलेख की कमी थी। बहुत बहुत धन्यवाद। –

संबंधित मुद्दे