JSP/SERVLET
2020.10.03 / 18:07

Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is rec

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

going to buffer response body of large or unknown size

http://phcs1219.egloos.com/5649421

get.getResponseBodyAsStream()À» »ç¿ëÇ϶ó.


java - ¿Ö ½ºÆ®¸² ´ë ¹®ÀÚ¿­·Î ÀÔ·ÂÀ» Àд °ÍÀÌ ´õ È¿À²ÀûÀԴϱî?


stream httpclient (3)

¿ì¸®´Â HTTPClient¸¦ »ç¿ëÇÏ¿© REST API¸¦ ±¸ÇöÇÏ°í ÀÖ½À´Ï´Ù.

¿ì¸®´Â ´ÙÀ½À» »ç¿ëÇÏ¿© ¼­¹ö ÀÀ´äÀ» ÀнÀ´Ï´Ù.

method = new PostMethod(url);
HttpClient client = new HttpClient();
int statusCode = client.executeMethod(method);
String responseBody = method.getResponseBodyAsString();

¿ì¸®°¡ ÀÌ°ÍÀ» ÇÒ ¶§ ¿ì¸®´ÂÀÌ °æ°í¸¦ ¾ò´Â´Ù.

Dec 9, 2009 7:41:11 PM org.apache.commons.httpclient.HttpMethodBase getResponseBody
WARNING: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended.

¹®¼­´Â ´ÙÀ½°ú °°ÀÌ ¸»ÇÕ´Ï´Ù.

HttpClient´Â È¿À²ÀûÀÎ ¿äû / ÀÀ´ä º»¹® ½ºÆ®¸®¹ÖÀÌ °¡´ÉÇÕ´Ï´Ù. Å« °³Ã¼´Â ¸Þ¸ð¸®¿¡ ¹öÆÛ¸µµÇÁö ¾Ê°í Á¦ÃâµÇ°Å³ª ¼ö½Å µÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº ¿©·¯ HTTP ¸Þ¼Òµå°¡ µ¿½Ã¿¡ ½ÇÇàµÉ ¼öÀÖ´Â °æ¿ì ƯÈ÷ Áß¿äÇÕ´Ï´Ù. ¹®ÀÚ¿­À̳ª ¹ÙÀÌÆ® ¹è¿­°ú °°Àº ¿£Æ¼Æ¼¸¦ ´Ù·ç´Â Æí¸®ÇÑ ¹æ¹ýÀÌ ÀÖÁö¸¸ »ç¿ë¹ýÀº ±ÇÀåÇÏÁö ¾Ê½À´Ï´Ù. ½ÅÁßÇÏ°Ô »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¸Þ¸ð¸®¿¡¼­ ¿ÏÀüÇÑ ¿£Æ¼Æ¼ÀÇ ¹öÆÛ¸µÀ» ¾Ï½ÃÇϹǷΠ½±°Ô ¸Þ¸ð¸® Á¶°ÇÀ» ¹þ¾î³¯ ¼ö ÀÖ½À´Ï´Ù.

±×·¡¼­ ³» Áú¹®¿¡, ¸¸¾à ´ç½ÅÀÌ ¹®ÀÚ¿­·Î Àüü ÀÀ´ä (Áï : DB¿¡ ÀúÀåÇϰųª DOMÀ» »ç¿ëÇÏ¿© ±¸¹® ºÐ¼®), ¿Ö ´õ ¸¹Àº ¸Þ¸ð¸®¸¦ È¿À²ÀûÀ¸·Î ½ºÆ®¸²À» »ç¿ëÇÏ´Â °ÍÀÌ ¹«¾ùÀԴϱî?


±ÍÇÏÀÇ Áú¹®Àº ±× ¿äÁ¡À» È¥¶õ½º·´°ÔÇÕ´Ï´Ù.

Àý´ëÀûÀ¸·Î Àüü ÀÀ´äÀ» ¹®ÀÚ¿­·Î ÇÊ¿ä·ÎÇÑ´Ù¸é ±×·¸°ÔÇϽʽÿÀ.

±×·¯³ª ¸¸¾à¿¡ ´ç½ÅÀÌ ±×°ÍÀ» °¡Áö°í µµ¸Á Ä¥ ¼ö ÀÖ´Ù¸é, ½ºÆ®¸²À» »ç¿ëÇϽʽÿÀ.

Àüü ÀÀ´äÀ» ¹®ÀÚ¿­·Î·ÎµåÇϸé Àüü ÀÀ´ä º»¹®ÀÌ ÇÑ ¹ø¿¡ ¸Þ¸ð¸®¿¡ ³ªÅ¸³³´Ï´Ù.

½ºÆ®¸²À» »ç¿ëÇϸé ÀÀ´äÀÇ ÀÛÀº ºÎºÐ ¸¸ ÇÑ ¹ø¿¡ ¸Þ¸ð¸®¿¡ º¸°üµË´Ï´Ù.

¹®¼­¿¡¼­´Â ¿©·¯ °³ÀÇ Å« ¿äûÀ» ÇѲ¨¹ø¿¡ ó¸® ÇÒ ¶§ Àüü ¿äû º»¹®À» ¹®ÀÚ¿­·Î·ÎµåÇÏ´Â µ¥ ¸¹Àº ¸Þ¸ð¸®°¡ ÇÊ¿äÇÏ´Ù°í ¸»ÇÕ´Ï´Ù.


Àüü ¿£ÅÍƼ¸¦ StringÀ¸·Î °¡Á® ¿À´Â ´ë½Å ½ºÆ®¸²À» »ç¿ëÇÏ´Â °ÍÀÌ ´õ È¿À²ÀûÀÔ´Ï´Ù. ÀÌ´Â ÈÄÀÚ°¡

  1. ÀÀ´äÀÇ Àüü ³»¿ëÀ» Äڵ忡 ¹ÝȯÇϱâ Àü¿¡ Àоî¾ßÇÕ´Ï´Ù.
  2. Àüü ÀÀ´äÀÌ ¼­¹ö¿¡ ÀÇÇØ º¸³»Áú ¶§±îÁö ÄÁÆ®·ÑÀ» ÄÚµå·Î ¹Ýȯ ÇÒ ¼ö ¾ø½À´Ï´Ù.

ÀÀ´äÀ» ½ºÆ®¸²À¸·Î ó¸® ÇÑ °æ¿ì ½ÇÁ¦·Î ¼öÇàÁßÀÎ ÀÛ¾÷Àº ÇÑ ¹ø¿¡ N ¹ÙÀÌÆ®¸¦ ó¸®ÇÏ´Â °ÍÀÔ´Ï´Ù. Áï, ¿ø°Ý ¼­¹ö°¡ ¿©ÀüÈ÷ ´ÙÀ½ µ¥ÀÌÅÍ ¼¼±×¸ÕÆ®¸¦ ´Ù½Ã º¸³»´Â µ¿¾È ù ¹ø° ÀÀ´ä ¼¼±×¸ÕÆ® 󸮸¦ ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼­ À¯½º ÄÉÀ̽º¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅ͸¦¹ÞÀº´ë·Î ó¸® ÇÒ ¼öÀÖ´Â °æ¿ì ¾×¼¼½º ¹æ¹ýÀ¸·Î ´õ ÀûÇÕÇÕ´Ï´Ù.

±×·¯³ª ¾î¶² ÀÌÀ¯·Î µç Àüü ÀÀ´äÀ» StringÀ¸·Î ÇÊ¿ä·ÎÇÏ´Â °æ¿ì ½ºÆ®¸² ¸Þ¼­µåÀÇ ¸ðµç È¿À²¼ºÀº »ç¿ëÀÚ¿¡°Ô ¾Æ¹«·± ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê½À´Ï´Ù. Áï, ÀÀ´äÀ» Á¶°¢À¸·Î Àдõ¶óµµ ¿©ÀüÈ÷ Àüü ÀÀ´äÀ» ±â´Ù¸± ÇÊ¿ä°¡ Àֱ⠶§¹®ÀÔ´Ï´Ù. ó¸®Çϱâ Àü¿¡ ¸ðµç °ÍÀ» ´ÜÀÏ String¿¡ Æ÷ÇÔ½ÃÄѾßÇÕ´Ï´Ù.

½ºÆ®¸² »ç¿ëÀÇ È¿À²¼ºÀº Àüü ÀÀ´ä º»¹®À» °®±â Àü¿¡ ÀÀ´ä 󸮸¦ ½ÃÀÛÇÒ ¼öÀÖ´Â À¯½º ÄÉÀ̽º°¡ÀÖ´Â °æ¿ì¿¡¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.


org.w3c.Document (¶Ç´Â ´õ ³ªÀº ¾ÆÁ÷ org.jdom.Document )·Î ±¸¹® ºÐ¼®ÇÏ´Â °æ¿ì ½ºÆ®¸²À» Á÷Á¢ »ç¿ëÇÏ´Â °ÍÀÌ ¸Å¿ì ½±½À´Ï´Ù. ÀüÀÇ:

org.apache.http.HttpResponse hr = httpClient.execute(httpRequest);
org.apache.http.HttpEntity he = hr.getEntity();
org.jdom.input.SAXBuilder builder = new SAXBuilder();
org.jdom.Document document = builder.build(he.getContent());