Send image to WCF from Android -


यह एंड्रॉइड से मेरा कोड है

  सार्वजनिक वर्ग UploadImage AsyncTask और lt; Uri, शून्य, स्ट्रिंग & gt; {@ ओवरराइड संरक्षित स्ट्रिंग doInBackground (उरी ... पैरामीटर) {बिटमैप बिटमैप; अगर (परामश [0]! = नल) {try {bitmap = bitmapFactory.decodeStream (getActivity () .getContentResolver ()। OpenInputStream (पैरामीटर [0])); बाइटअरेऑन आउटपुटस्ट्रीम आउट = नया बाइटअरेऑनूटस्ट्रीम (); Bitmap.compress (बिटमैप। कॉम्प्रोफ़ॉर्मेट.जेपीईजी, 10, आउट); DefaultHttpClient httpClient = नया DefaultHttpClient (); बाइट [] भेजेंडेटा = बाहर। टू बैटेअरे (); एचटीटीपी पोस्ट http पोस्ट = नया एचटीटीपीपोस्ट (यूआरएल + "/" + मेथोडिने_अपलोड); HttpPost.setHeader ("कंटेंट-प्रकार", "एप्लिकेशन / जेएसन"); बाइटअरेबॉडी बाब = नया बाइटअरेबॉडी (भेजडेटा, "मोबाइल पेज"); MultipartEntity इकाई = नया multipartEntity (HttpMultipartMode.BROWSER_COMPATIBLE); Entity.addPart ("छवि", बाब); httpPost.setEntity (इकाई); HttpResponse प्रतिक्रिया = httpClient.execute (httpPost); Println (response.getStatusLine () getStatusCode ()।); // if (response.getStatusLine ()। GetStatusCode ()! = 200) {// नया रनटाइम अपवाद फेंक (// "विफल: HTTP त्रुटि कोड:" // + response.getStatusLine () // .getStatusCode ()); //} else {// System.out.println ("सफलता"); //}} पकड़ (FileNotFoundException ई) {// TODO स्वत: उत्पन्न होल्डिंग ब्लॉक e.printStackTrace (); } कैच (क्लाइंटप्रोटोकल एक्स्प्शन ई) {// टोडो ऑटो-जेनरेट कैच ब्लॉक e.printStackTrace (); } पकड़ (IOException ई) {// TODO ऑटो-जेनरेट कैच ब्लॉक e.printStackTrace (); }} वापसी नल; I । बेयर, रिस्पांसफ़ॉर्मेट = वेबमेलफ़ॉर्मेट। जेसन, रिक्वेस्ट फॉर्मेट = वेबमेलफ़ॉर्मेट। जेसन)] स्ट्रिंग अपलोड इमेज (स्ट्रीम इमेज);   

और यह मेरी विधि है,

  सार्वजनिक स्ट्रिंग अपलोड इमेज (स्ट्रीम इमेज) {वापसी "सफलता"; }   

मुझे स्टेटस कोड 415 (असमर्थित मीडिया प्रकार) मिल रहा है

मैंने Google में बहुत खोज की है कोई मदद अत्यधिक सराहनीय होगी कोई अन्य समाधान भी आपका स्वागत है मुझे क्या चाहिए, मैं ImagePicker का उपयोग करके एक छवि चुनना चाहता हूं और इसे टीसीसीसीसी सेवा भेजना चाहता हूं, वहां से मैं सर्वर पर अपलोड करूँगा।

नोट: वैकल्पिक समाधान भी आपका स्वागत है

अपडेट 1 @ वैशाली के उत्तर के बाद मैंने अपडेट किया है मेरा कोड निम्नानुसार है

  bitmap = bitmapfactory.decodestream (getActivity () .getContentResolver ()। OpenInputStream (params [0])); बाइट [] sendData = getEncoded64ImageStringFromBitmap (बिटमैप); बाइटअरेबॉडी बाब = नया बाइटअरेबॉडी (भेजडेटा, "मोबाइल पेज"); MultipartEntity इकाई = नया multipartEntity (HttpMultipartMode.BROWSER_COMPATIBLE); Entity.addPart ("मोबाइल", बाब); DefaultHttpClient httpClient = नया DefaultHttpClient (); एचटीटीपी पोस्ट http पोस्ट = नया एचटीटीपीपोस्ट (यूआरएल + "/" + मेथोडिने_अपलोड); HttpPost.setHeader ("कंटेंट-प्रकार", "एप्लिकेशन / जेएसन"); HttpResponse प्रतिक्रिया = httpClient.execute (httpPost); System.out.println (response.getStatusLine ()। GetStatusCode ());   

और

  सार्वजनिक बाइट [] getEncoded64ImageStringFromBitmap (बिटमैप बिटमैप) {बाइटअरेऑनपुट स्ट्रीम स्ट्रीम = नया बाइटअरेऑन आउटपुट स्ट्रीम (); Bitmap.compress (CompressFormat.JPEG, 70, स्ट्रीम); बाइट [] बाइटफ़ॉर्मेट = स्ट्रीम। टू बैटएरे (); // बेस 64 स्ट्रिंग स्ट्रिंग imgString = Base64.encodeToString (बाइटफ़ॉर्मेट, बेस64.NO_WRAP) प्राप्त करें; वापसी imgString.getBytes (); }   

अब स्थिति कोड है 400

मुझे लगता है कि डेटा में WCF सेवा (एक आईओ धारा) से जुड़ा है, जिसमें आपको लगता है कि आप (एक बाइट सरणी) भेज रहे हैं, ऐसा लगता है कि आपके पास एक बेमेल है।

मेरा अनुभव यह रहा है कि डब्लूसीएफ में धाराओं को सही करना मुश्किल है, इसलिए मैं एक बाइट सरणी की अपेक्षा करने के लिए अपने मेजबान-पक्ष इंटरफ़ेस को बदलने का सुझाव देता हूं और देखें कि क्या होता है

Comments

Popular posts from this blog

ios - Adding an SKSpriteNode to SKScene from a child SKSpriteNode -

Matlab transpose a table vector -

c# - Textbox not clickable but editable -