2011-06-15 13 views
11

के माध्यम से एक बाइट [] सरणी भेजना मैं पैरामीटर स्ट्रिंग का एक पोस्ट करने में सक्षम हूं।एंड्रॉइड: एचटीपी पोस्ट

String parameters = "firstname=john&lastname=doe"; 
URL url = new URL("http://www.mywebsite.com"); 
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setDoOutput(true); 
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); 
connection.setRequestMethod("POST"); 

OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream()); 
out.write(parameters); 
out.flush(); 
out.close(); 
connection.disconnect(); 

हालांकि, मैं बाइनरी डेटा की एक पोस्ट (जो बाइट [] के रूप में है) करने की जरूरत है: मैं निम्नलिखित कोड का उपयोग करें।

यह सुनिश्चित नहीं है कि इसे लागू करने के लिए उपरोक्त कोड को कैसे बदला जाए।
क्या कोई मेरी मदद कर सकता है?

उत्तर

6

आप पहले -80 अपने डेटा को एन्कोड कर सकते हैं। उपयुक्त नाम Base64 कक्षा पर एक नज़र डालें।

+1

विचार के लिए +1। दुर्भाग्य से मैं बेस 64 का उपयोग नहीं कर सकता क्योंकि सर्वर इसकी अपेक्षा नहीं करता है। (मैं सर्वर में परिवर्तन नहीं कर सकता क्योंकि यह कई क्लाइंट अनुप्रयोगों को पूरा करता है) – OceanBlue

8

एक नज़र यहाँ Sending POST data in Android

ले लो लेकिन ByteArrayEntity का उपयोग करें।

byte[] content = ... 
HttpPost httpPost = new HttpPost(url); 
httpPost.setEntity(new ByteArrayEntity(content));   
HttpResponse response = httpClient.execute(httpPost); 
+0

इस पंक्ति को निष्पादित करने में बहुत लंबा समय (8 सेकंड) ले रहा है "httpPost.setEntity (नई बाइटएरेएन्टिटी (सामग्री));" कभी-कभी मेरे कोड में। क्या आपको कोई विचार है कि ऐसा क्यों हो सकता है? –

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