CORE
HOME > JAVA > J2SE > CORE
2020.10.03 / 18:21

java - Ư¼ö¹®ÀÚ - url ÀÎÄÚµù

Ãß¼®µ¹ÀÌ
Ãßõ ¼ö 256

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 ¿£ÄÚ´õ°¡ ¹®Á¦¸¦ ÇØ°áÇÏÁö ¸øÇÕ´Ï´Ù. ³ª´ÂÀÌ ¹®Á¦¸¦ °¡Áö°í ÀÖÀ¸¸ç Ä¿½ºÅÒ À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇß´Ù. ³ª´Â ÀÌ°ÍÀÌ ³»°¡ ÀÎÅÍ³Ý °Ë»ö¿¡¼­ ¾òÀº °ÍÀ» ±â¾ïÇÑ´Ù.).

http://www.javapractices.com/topic/TopicAction.do?Id=96


String data = request.getParameter(param1);

ÀÌ°ÍÀÌ ¼­ºí¸´ API ÀÎ °æ¿ì ¸Å°³ º¯¼ö°¡ ÀÌ¹Ì µðÄÚµùµÇ¾ú½À´Ï´Ù. ÆÛ¼¾Æ® ÀÎÄÚµùÀ» ´õ ÀÌ»ó ó¸® ÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù.

HttpClient¸¦ »ç¿ëÇÏÁö ¾Ê¾ÒÁö¸¸ Çì´õ¿¡ ÀÎÄÚµùÀ» º¸³»°í ÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ.

Content-type: application/x-www-form-urlencoded; charset=UTF-8

¶Ç´Â, ÇÊ¿äÇÑ °æ¿ì, getParameter È£Ãâ Àü¿¡ ¾Ë·ÁÁø ÀÎÄÚµùÀ» ¼³Á¤ÇϽʽÿÀ.

request.setCharacterEncoding("UTF-8");