2012-07-18 12 views
6

मैं एक BESHttpURLConnection conn.getRequestProperty

के लिए एक यूआरएल (MDS_CS) के लिए कुछ डेटा पुश करने के लिए जब मैं अपने कोड में कुछ अनुरोध हेडर निर्धारित करते हैं, और अनुरोध सबमिट कोशिश कर रहा हूँ अशक्त की गई, सबमिट किए अनुरोध के हेडर है शून्य पर सेट करें। जब मैं एक्स-रिम-पुश-शीर्षक यह है शून्य केवल एक्स-रिम-Push- प्राप्त करने का प्रयास

 HttpURLConnection conn =(HttpURLConnection)url.openConnection(); 
     conn.setDoInput(true);//For receiving the confirmation 
     conn.setDoOutput(true);//For sending the data 
     conn.setRequestMethod("POST");//Post the data to the proxy 
     conn.setRequestProperty("X-Rim-Push-ID", pushId); 
     conn.setRequestProperty("Content-Type", "text/html"); 
     conn.setRequestProperty("X-Rim-Push-Title", "-message"); 
     conn.setRequestProperty("X-Rim-Push-Type", "browser-message");     
     conn.setRequestProperty("X-Rim-Push-Dest-Port", "7874");    
     //Write the data 
     OutputStream out = conn.getOutputStream(); 
     out.write(data.getBytes()); 
     out.close(); 

     System.out.println(conn.getHeaderField("X-Rim-Push-ID")); 

अंतिम पंक्ति वापसी अशक्त:

यहाँ मेरी कोड है आईडी जो सही ढंग से लिया गया है,

कृपया मेरी मदद

+1

पर अनुरोध कुछ भी नहीं भेजा गया है आप अनुरोध प्रोप सेट कर रहे हैं erties, लेकिन एक हेडर फ़ील्ड प्राप्त करना। क्या यह उद्देश्य पर है? व्यक्तिगत रूप से मैं काम करने के लिए 'conn.getRequestProperty (" एक्स-रिम-पुश-आईडी ") की अपेक्षा करता हूं। – Thor84no

+3

यह स्पष्ट करने के लिए कि @ थोर 84नो क्या कह रहा है, 'getHeaderField() '_response_ हेडर प्राप्त करने के लिए है, न कि एक अनुरोध शीर्षलेख जिसे आपने पहले सेट किया था। – jtahlborn

+0

सच है, कृपया, मैं हेडर और डेटा के साथ पूर्ण http पोस्ट कैसे प्राप्त कर सकता हूं? सर्वर से प्रतिक्रिया 200 है, लेकिन अभी भी मेरा डेटा ब्लैकबेरी – dzgeek

उत्तर

12

बिल्कुल यकीन नहीं है कि आप वास्तव में क्या करना चाहते हैं। लेकिन यह देखने के लिए कि सर्वर पर क्या पोस्ट किया गया है, आपको इसे अपने आप पोस्ट करना होगा और वहां प्राप्त डेटा को पढ़ना होगा।

आप सभी अनुरोध शीर्षों आप कर सकते थे देखना चाहते हैं:

for (String header : conn.getHeaderFields().keySet()) { 
    if (header != null) { 
    for (String value : conn.getHeaderFields().get(header)) { 
     System.out.println(header + ":" + value); 
     } 
    } 
} 
+0

मैं अपना अनुरोध निष्पादित करने के लिए एक साधारण मुख्य विधि का उपयोग कर रहा हूं, मैं भेजे गए अनुरोध को डीबग नहीं कर सकता! कैसे "इसे अपने आप पोस्ट करें और पढ़ें" क्या मैं इसे कर सकता हूं? – dzgeek

+0

इसे अपने सर्वर पर पोस्ट करने के लिए सबसे आसान टोमकैट जैसे सर्वलेट कंटेनर में सर्वलेट होगा। लेकिन मैं नहीं देखता कि आपको वास्तव में इसकी आवश्यकता क्यों है। जैसे ही आप अपने अनुरोध में सभी डेटा लिखते हैं, आपको पता होना चाहिए कि आप क्या पोस्ट कर रहे हैं। क्या आपने जांच की कि आपका 'डेटा' कैसा दिखता है, क्या आपने इसे सही तरीके से एन्कोड किया था? – morja

+0

एक सर्वलेट पर पोस्ट विधि से हैंडलिंग? क्या मैं सही हू ? डेटा एन्कोड किया गया है! सर्वर 200 कोड वापस – dzgeek

1

मैंका उपयोग कर सुझाव है

final HttpClient client = new HttpClient(); 
final PostMethod method = new PostMethod(uri); 
method.addRequestHeader("X-Rim-Push-Title", "-message"); 
client.executeMethod(method); 
String responseBody = method.getResponseBodyAsString(); 
Header[] headers = method.getResponseHeaders(); 

एचटीपी क्लाइंट एचटीपीआरएल कनेक्शन से HTTP से निपटने का एक और अधिक शक्तिशाली तरीका है।

0

जब मैं जाँच मेरी हेडर प्रस्तुत और InputStream:

for (String header : conn.getRequestProperties().keySet()) { 
    if (header != null) { 
    for (String value : conn.getRequestProperties().get(header)) { 
     System.out.println(header + ":" + value); 
     } 
    } 
} 

या कनेक्ट करने से आपको बाहर प्रतिक्रिया हेडर मुद्रित कर सकते हैं के बाद अनुरोध के, मुझे 200 ठीक स्थिति मिलती है, लेकिन डिवाइस

from server: 200 | OK 


=======REQUEST=============== 
request header:X-Rim-Push-ID:pushID:1342694818991 
request header:Host:win-uhgr7vs88uz.assabb.com:8080 
request header:Content-Length:19 
request header:X-Rim-Push-Title:-message 
request header:User-Agent:Java/1.6.0_18 
request header:POST /push?DESTINATION=bestest%40assa-associates.com&PORT=7874&REQUESTURI=/ HTTP/1.1:null 
request header:Content-Type:text/html 
request header:Accept:text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 
request header:Connection:keep-alive 
request header:X-Rim-Push-Dest-Port:7874 
request header:X-Rim-Push-Type:browser-message 
======Response=============== 
response header:Date:Thu, 19 Jul 2012 10:47:10 GMT 
response header:Content-Length:0 
response header:X-RIM-Push-ID:pushID:1342694818991 
response header:Via:MDS_5.0.3.26 
response header:x-rim-multidest-push-supported:true 
response header:Server:Apache-Coyote/1.1 
response header:x-rim-push-persisted:fals 
संबंधित मुद्दे