में जावा में, मैं HTTP पोस्ट उपयोग करने के लिए सर्वर के लिए अनुरोध भेजना होगा, लेकिन यह अपवादयूआरएल एनकोड और डीकोड विशेष वर्ण जावा
जावा नीचे फेंकता है तो URL के पैरामीटर में कुछ विशेष वर्ण है। lang.IllegalArgumentException: URLDecoder: भागने में अवैध हेक्स वर्णों (%) पैटर्न - इनपुट स्ट्रिंग के लिए: "& '"
कोड भेजने के लिए डेटा
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(URL);
String sessionId = RequestUtil.getRequest().getSession().getId();
String data = arg.getData().toString();
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(param1, data));
params.add(new BasicNameValuePair(param2, sessionId));
httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
HttpResponse response = (HttpResponse) httpclient.execute(httpPost);
और सर्वर साइड पर, मैं नीचे दिए गए कोड का उपयोग जानकारी
String data = request.getParameter(param1);
if (data != null) {
actionArg = new ChannelArg(URLDecoder.decode(data, "UTF-8"));
}
कोड ठीक से कार्य को पढ़ने के लिए, लेकिन अगर मैं इनपुट जैसे कुछ विशेष वर्ण [एक あ あ # $% & '(<>? /।, あ あ あ あ あ], यह अपवाद फेंक देगा। मुझे आश्चर्य है कि कोई मुझे विशेष संकेतों को एन्कोड और डीकोड करने में सक्षम होने के लिए कुछ संकेत दे सकता है?
अग्रिम में बहुत बहुत धन्यवाद।
मैं एक बेहतर समाधान का निरीक्षण किया। अपाचे से हमारे दोस्तों में स्ट्रिंगएस्केप यूट्स (org.apache.commons.lang.StringEscapeUtils) है। अगर यह काम करता है तो कृपया इसे जांचें। –