2013-04-18 8 views
6

मैं कैसे मैं जानकारी HttpPost एंड्रॉयड पर विधि का उपयोग कर भेज सकते हैं के बारे में जानकारी देख रहा था का उपयोग किए बिना HttpPost साथ Android पर एक स्ट्रिंग भेजें, और मैं हमेशा इस देखें:nameValuePairs

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost(posturl); 

List<NameValuePair> params = new ArrayList<NameValuePair>(); 
params.add(new BasicNameValuePair("Name","Var1")); 
params.add(new BasicNameValuePair("Name2","Var2")); 

httppost.setEntity(new UrlEncodedFormEntity(params));  
HttpResponse resp = httpclient.execute(httppost); 
HttpEntity ent = resp.getEntity(); 

समस्या यह है कि मैं नहीं कर सकते कि है , क्योंकि मुझे ऐसे संसाधन से कनेक्ट करना है जो एक्सएमएल प्रारूप के साथ एक स्ट्रिंग प्राप्त करता है।

कैसे मैं एक List<nameValuePair>

+0

आपको यह कैसे पता चला कि उपर्युक्त कोड किसी भी तरह से XML से संबंधित है? इसके अलावा, जब आप इसे http के माध्यम से भेजते हैं तो आपकी स्ट्रिंग को एक नाम की आवश्यकता होगी, ताकि आप एक नाम/मूल्य जोड़ी या नामित यूआरएल पैरामीटर के साथ समाप्त हो जाएंगे। –

+0

ठीक है कृपया स्पष्ट करें कि आपकी _real_ समस्या क्या है। क्या आपके पास एक्सएमएल स्ट्रिंग है और सर्वर एक्सएमएल स्ट्रिंग वैल्यू स्वीकार नहीं कर सकता है? फिर आपको हमें यह बताने होंगे कि सर्वर किस प्रारूप को स्वीकार कर सकता है। या क्या आपको लगता है कि नाम/मूल्य जोड़ी चीज़ के पास एक्सएमएल के साथ कुछ करना है? तब जवाब है, नहीं, यह नहीं करता है। यह सिर्फ आपको 'POST' शरीर को भरने के लिए छेड़छाड़ करता है। –

+0

ठीक है, सर्वर एक javaScrip का उपयोग करता है, उस पर वह एक पाठ पढ़ता है जिसे आपने भेजा है और वह पाठ एक एक्सएमएल फ़ाइल है या वह प्रारूप है। इसलिए मैं ValuePairs का उपयोग नहीं कर सकता क्योंकि मुझे केवल एक स्ट्रिंग भेजनी है। लेकिन इंटरनेट पर मैंने जो तरीकों को देखा वह केवल वैल्यूपेयर ऐरे का उपयोग करता है। अब मैं भगत भटनागर उत्तर का उपयोग करने की कोशिश कर रहा हूं। मुझे लगता है कि यह – Fernando

उत्तर

19

आप StringEntity का उपयोग कर की कोशिश की है का उपयोग किए बिना केवल स्ट्रिंग भेज सकते हैं के बारे में कोई विचार?

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost(posturl); 


httppost.setEntity(new StringEntity("your string"));  
HttpResponse resp = httpclient.execute(httppost); 
HttpEntity ent = resp.getEntity(); 
+0

पूरी तरह से काम करता है :) ty – Fernando

+0

यह विधि php फ़ंक्शन के लिए काम करती है जिसे file_get_contents ('php: // input') कहा जाता है, अगर हम $ _POST ['content'] का उपयोग करते हैं तो यह काम नहीं करता है.वह क्यों है? –

+0

मेरे लिए धन्यवाद काम –

0

आप पोस्ट पैरामीटर के रूप में उपयोग कर सकते हैं JSON: ऊपर कोड StringEntity उपयोग करने के लिए अद्यतन किया जा सकता, के बाद उत्पन्न कोड है। FlexJson

+0

मैं जेएसओएन का उपयोग नहीं कर सकता, सर्वर का उपयोग जावास्क्रिप्ट फ़ाइल – Fernando

-1
// Sending HTTPs Requet to Server 

    try { 
     Log.v("GG", "Sending sever 1 - try"); 
     // start - line is for sever connection/communication 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost(
       "10.0.0.1/abc.php"); 

     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); 
     nameValuePairs.add(new BasicNameValuePair("qrcode", contents)); 


     httppost.setEntity(new UrlEncodedFormEntity(
       nameValuePairs)); 
     HttpResponse response = httpclient.execute(httppost); 
     HttpEntity entity = response.getEntity(); 
     // end - line is for sever connection/communication 
     InputStream is = entity.getContent(); 

     Toast.makeText(getApplicationContext(), 
       "Send to server and inserted into mysql Successfully", Toast.LENGTH_LONG) 
       .show(); 

     // Execute HTTP Post Request 
     response= httpclient.execute(httppost); 

     entity = response.getEntity(); 
     String getResult = EntityUtils.toString(entity); 
     Log.e("response =", " " + getResult); 



    } catch (Exception e) { 
     Log.e("log_tag", "Error in http connection " 
       + e.toString()); 
    } 
+0

इस प्रश्न का उत्तर बहुत समय पहले दिया गया था, लेकिन आपका उत्तर सही नहीं है। आप NameValuePairs की एक सूची का उपयोग कर रहे हैं और मुझे नाम ValuePairs के बिना केवल एक स्ट्रिंग भेजने की आवश्यकता है। – Fernando

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