2012-07-24 13 views
12

मुझे लगता है कि सुरक्षित आराम से वेब सेवा के माध्यम से गीत (एमपी 3/WAV) फ़ाइल और कुछ डेटा भेजने का अनुमान है। मैं HttpPost अनुरोध करने के लिए MultipartEntity का उपयोग कर रहा हूँ। स्थिति रिपोर्ट संदेश: गलत अनुरोध अनुरोध ग्राहक द्वारा भेजे गए वाक्य रचना गलत थी (ख़राब अनुरोध) गलत अनुरोध प्रकार है - लेकिन जब मैंने इसे HttpClient के माध्यम से निष्पादित, सर्वर इस त्रुटिएंड्रॉइड त्रुटि: मल्टीपार्ट एंटीटी, क्लाइंट द्वारा भेजा गया अनुरोध वाक्यगत रूप से गलत था

HTTP स्थिति 400 उत्तर।

लेकिन अगर हम इसे अपने वेब इंटरफ़ेस से कॉल करते हैं तो सेवा बहुत अच्छी तरह से कर रही है। कृपया

अपने कोड

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost postRequest = new HttpPost(); 
     try { 
      MultipartEntity reqEntity = new MultipartEntity(); 

      reqEntity.addPart("email", new StringBody("[email protected]")); 
      reqEntity.addPart("password", new StringBody("123")); 
      reqEntity.addPart("title", new StringBody("My new song")); 
      reqEntity.addPart("musicData", new FileBody(new File(FilePath))); 

      // FIlePath is path to file and contains correct file location 

      postRequest.setEntity(reqEntity); 

      postRequest.setURI(new URI(ServiceURL)); 
      HttpResponse response = httpclient.execute(postRequest); 

     } catch (URISyntaxException e) { 
      Log.e("URISyntaxException", e.toString()); 
     } 

मैं भी शामिल अपाचे-mime4j, httpclient, httpcore और httpmime जार MultipartEntity के लिए मदद करते हैं।

यह सेवा के लिए HTML पृष्ठ स्नैप है। enter image description here

+0

क्या आप सुनिश्चित हैं कि प्रमाणीकरण कार्य करता है? – Mark

+0

हाँ ..... यह – Azhar

+0

आप अपने वेब सेवा में भी अपनी मैपिंग यूआरएल पोस्ट कर सकते हैं क्या है? यह हो सकता है कि आपका यूआरएल अनुरोध मैप किए गए से अलग है। – tolgap

उत्तर

5

सेटूरआई विधि को हटाने का प्रयास करें और जब आप अपना एचटीपीपोस्ट ऑब्जेक्ट बनाते हैं तो यूआरएल पास करें। यह मेरे लिए काम किया (more here)।

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost postRequest = new HttpPost(ServiceURL); 
try { 
    MultipartEntity reqEntity = new MultipartEntity(); 

    reqEntity.addPart("email", new StringBody("[email protected]")); 
    reqEntity.addPart("password", new StringBody("123")); 
    reqEntity.addPart("title", new StringBody("My new song")); 
    reqEntity.addPart("musicData", new FileBody(new File(FilePath)));  
    postRequest.setEntity(reqEntity); 

    HttpResponse response = httpclient.execute(postRequest); 

} catch (URISyntaxException e) { 
    Log.e("URISyntaxException", e.toString()); 
} 
+0

बस इसे स्वीकार करें क्योंकि बक्षीस का समय समाप्त हो गया है और हम कुछ समाधान के करीब हैं लेकिन समस्या अभी भी है :( – Azhar

2

न अपना समय बर्बाद अलग अलग combinations.There कोशिश कर रहा द्वारा कुछ HTTP अनुरोध HTTP जिसके साथ आप अनुरोध और प्रतिक्रिया आप getting.Ex हैं ट्रैक कर सकते हैं के लिए उपलब्ध उपकरण हैं। HTTP विश्लेषक डाउनलोड परीक्षण संस्करण

अपने कामकाजी वेबिनटरफेस से कॉल यूआरएल, प्रतिलिपि अनुरोध और प्रतिक्रिया फिर प्रोग्राम से ही ऐसा करें, टूल आपके अनुरोध और प्रतिक्रिया डेटा को कैप्चर करने में सक्षम है।

अब की तुलना में काम कर रहे हैं और गैर काम कर अनुरोध आप मुद्दा यह हैडर मुद्दा या कुछ प्रमाणीकरण संबंधित मुद्दा हो सकता है कि क्या dignose को निश्चित रूप से सक्षम होगा।

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