java - Ư¼ö¹®ÀÚ - url ÀÎÄÚµù
URL Java¿¡¼ Ư¼ö ¹®ÀÚ ÀÎÄÚµù ¹× µðÄÚµù (3)
±¸¾Æ¹Ù¸¦ ½ÃÇèÇØ º¸¶ó.
com.google.common.net.UrlEscapers¸¦ »ç¿ëÇϽʽÿÀ.
±×°ÍÀº Áß±¹°ú Àß ÀÛµ¿ÇÕ´Ï´Ù.
ÀÌ·¸°Ô :
Escaper escaper = UrlEscapers.urlFragmentEscaper();
String result = escaper.escape(yoururl);
ÀÚ¹Ù¿¡¼´Â HTTP POST¸¦ »ç¿ëÇÏ¿© ¼¹ö¿¡ ¿äûÀ» º¸³»¾ßÇÏÁö¸¸ URLÀÇ ¸Å°³ º¯¼ö¿¡ Ư¼ö ¹®ÀÚ°¡ Æ÷ÇÔ µÈ °æ¿ì ¿¹¿Ü ¾Æ·¡¿¡ throwµË´Ï´Ù.
java.lang.IllegalArgumentException : URLDecoder : À̽ºÄÉÀÌÇÁ (%) ÆÐÅÏÀÇ À߸øµÈ 16 Áø¼ö ¹®ÀÚ - ÀÔ·Â ¹®ÀÚ¿ÀÇ °æ¿ì : "& '"
µ¥ÀÌÅ͸¦ º¸³»´Â ÄÚµå
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"));
}
Äڵ尡 ¿Ã¹Ù¸£°Ô ÀÛµ¿ÇÏÁö¸¸ [a ª¢ ª¢ # $ % & '(<>? /., ª¢ ª¢ ª¢ ª¢ª¢]¿Í °°Àº Ư¼ö ¹®ÀÚ¸¦ ÀÔ·ÂÇÏ¸é ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù. ´©±º°¡°¡ ÀÎÄÚµù ÇÒ ¼öÀÖ´Â ÈùÆ®¸¦ ÁÙ ¼ö ÀÖ´ÂÁö ±Ã±ÝÇÕ´Ï´Ù. Ư¼ö ¹®ÀÚ¸¦ µðÄÚµùÇմϱî?
´ë´ÜÈ÷ °¨»çµå¸³´Ï´Ù.
½½ÇÁ°Ôµµ URL ¿£ÄÚ´õ°¡ ¹®Á¦¸¦ ÇØ°áÇÏÁö ¸øÇÕ´Ï´Ù. ³ª´ÂÀÌ ¹®Á¦¸¦ °¡Áö°í ÀÖÀ¸¸ç Ä¿½ºÅÒ À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇß´Ù. ³ª´Â ÀÌ°ÍÀÌ ³»°¡ ÀÎÅÍ³Ý °Ë»ö¿¡¼ ¾òÀº °ÍÀ» ±â¾ïÇÑ´Ù.).
String data = request.getParameter(param1);
ÀÌ°ÍÀÌ ¼ºí¸´ API ÀÎ °æ¿ì ¸Å°³ º¯¼ö°¡ ÀÌ¹Ì µðÄÚµùµÇ¾ú½À´Ï´Ù. ÆÛ¼¾Æ® ÀÎÄÚµùÀ» ´õ ÀÌ»ó ó¸® ÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù.
HttpClient¸¦ »ç¿ëÇÏÁö ¾Ê¾ÒÁö¸¸ Çì´õ¿¡ ÀÎÄÚµùÀ» º¸³»°í ÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ.
Content-type: application/x-www-form-urlencoded; charset=UTF-8
¶Ç´Â, ÇÊ¿äÇÑ °æ¿ì, getParameter
È£Ãâ Àü¿¡ ¾Ë·ÁÁø ÀÎÄÚµùÀ» ¼³Á¤ÇϽʽÿÀ.
request.setCharacterEncoding("UTF-8");