{"id":9939,"date":"2025-11-06T16:57:58","date_gmt":"2025-11-06T07:57:58","guid":{"rendered":"https:\/\/www.auctionpro.co.kr\/?p=9939"},"modified":"2025-11-06T17:08:05","modified_gmt":"2025-11-06T08:08:05","slug":"%ed%98%b8%ec%b6%9c%eb%b6%80%eb%b6%84-get-%ec%97%90%ec%84%9c-post-%eb%a1%9c-%eb%b3%80%ea%b2%bd","status":"publish","type":"post","link":"https:\/\/www.auctionpro.co.kr\/?p=9939","title":{"rendered":"\ud638\ucd9c\ubd80\ubd84  Get \uc5d0\uc11c Post \ub85c \ubcc0\uacbd"},"content":{"rendered":"\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true \">        public string TestForm(string ID,\n                                    string IDX,\n                                    string ProductNumber,\n                                    string Parameter,\n                                    int ContentsType)\n        {\n            string baseUrl = Config.ProductViewUrl; \/\/Default\n            string EMDViewUrl = Config.ProductEMDViewUrl; \/\/EMD\n\n            if (ContentsType == 2) \/\/ 2 : Product\n            { baseUrl = EMDViewUrl; }\n\n            var query = HttpUtility.ParseQueryString(string.Empty);\n\n            query[\"ProductNumber\"] = ProductNumber;\n            query[\"Parameter\"] = Parameter;\n\n            string fullUrl = $\"{baseUrl}?{query}\";\n\n            string decoded = HttpUtility.UrlDecode(fullUrl);\n\n            try\n            {\n                var response = httpClient.GetAsync(decoded).GetAwaiter().GetResult();\n                response.EnsureSuccessStatusCode();\n                return response.Content.ReadAsStringAsync().GetAwaiter().GetResult();\n            }\n            catch (Exception ex)\n            {\n                \/\/ \ub85c\uadf8 \ucd9c\ub825 \ub610\ub294 \uc5d0\ub7ec \ud578\ub4e4\ub9c1\n                return $\"Error: {ex.Message}\";\n            }\n        }<\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 \ubcc0\uacbd \ud3ec\uc778\ud2b8<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\uae30\uc874<\/th><th>\ubcc0\uacbd<\/th><\/tr><\/thead><tbody><tr><td><code>?ProductNumber=...&amp;Parameter=...<\/code><\/td><td>HTTP Body(Form) \ub85c \uc804\uc1a1<\/td><\/tr><tr><td><code>HttpUtility.UrlDecode(fullUrl)<\/code><\/td><td>\ubd88\ud544\uc694 \u2192 \uc81c\uac70<\/td><\/tr><tr><td><code>GetAsync<\/code><\/td><td><code>PostAsync<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 \uc7a5\uc810<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714 \uae34 XML\/\uc774\ub984\/\uc8fc\uc18c \uac19\uc740 \uac12\ub3c4 \uc548\uc804\ud558\uac8c \uc804\uc1a1<br>\u2714 QueryString \uae38\uc774 \uc81c\ud55c \uc6b0\ud68c<br>\u2714 \ud2b9\uc218\ubb38\uc790\/\ud55c\uae00 \uc790\ub3d9 URL-encode<br>\u2714 <code>Parameter<\/code> \uac12\uc774 \uc911\ubcf5\ub418\uc5b4\ub3c4 ID\/IDX\/ProductNumber \ub294 \uc778\uc790\ub85c \ud655\uc815\ub428<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true \" title=\"TestForm\">public string TestForm(\n    string ID,\n    string IDX,\n    string ProductNumber,\n    string Parameter,\n    int ContentsType)\n{\n    \/\/ 1) \uae30\ubcf8 URL \uc120\ud0dd\n    string endpoint = Config.ProductViewUrl;\n    if (ContentsType == 2) \/\/ 2 = EMD\n        endpoint = Config.ProductEMDViewUrl;\n\n    try\n    {\n        \/\/ 2) Parameter \uac00 \"&amp;A=1&amp;B=2\" \ud615\ud0dc\uc77c \uc218 \uc788\uc73c\ubbc0\ub85c \uc815\ub9ac\n        if (!string.IsNullOrEmpty(Parameter) &amp;&amp; Parameter.StartsWith(\"?\"))\n            Parameter = Parameter.Substring(1);\n\n        var parsed = HttpUtility.ParseQueryString(Parameter ?? string.Empty);\n\n        \/\/ 3) \ucd5c\uc885 \uc804\uc1a1\ud560 FormData \uad6c\uc131\n        var form = new Dictionary&lt;string, string&gt;(StringComparer.OrdinalIgnoreCase);\n\n        \/\/ Parameter\uc5d0 \uc788\ub294 \ubaa8\ub4e0 key\/value \ud761\uc218\n        foreach (string key in parsed.AllKeys)\n        {\n            if (string.IsNullOrEmpty(key)) continue;\n            form[key] = parsed[key] ?? string.Empty;\n        }\n\n        \/\/ 4) \uc9c1\uc811 \uc778\uc790 \uac12\uc73c\ub85c \ub36e\uc5b4\uc4f0\uae30\n        form[\"ID\"]          = ID ?? string.Empty;\n        form[\"IDX\"]          = IDX ?? string.Empty;\n        form[\"ProductNumber\"] = ProductNumber ?? string.Empty;\n        form[\"ContentsType\"] = ContentsType.ToString();\n\n        \/\/ 5) \ud544\uc694 \uc2dc EMD URL \ucabd\uc5d0\uc11c TktID \uc694\uad6c\ud558\uba74 \ucd94\uac00\n        if (!form.ContainsKey(\"NiewID\") &amp;&amp; !string.IsNullOrEmpty(ID))\n            form[\"NiewID\"] = ID;\n\n        \/\/ 6) POST \uc804\uc1a1\n        using (var content = new FormUrlEncodedContent(form))\n        {\n            var response = httpClient.PostAsync(endpoint, content).GetAwaiter().GetResult();\n            response.EnsureSuccessStatusCode();\n            return response.Content.ReadAsStringAsync().GetAwaiter().GetResult();\n        }\n    }\n    catch (Exception ex)\n    {\n        return $\"Error: {ex.Message}\";\n    }\n}<\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><code>ParseQueryString<\/code> \uc740 <strong>URL QueryString\uc744 Key\/Value \ud615\ud0dc\uc758 \uceec\ub809\uc158(NameValueCollection)\uc73c\ub85c \ud30c\uc2f1<\/strong>\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud30c\uc2f1 \uacfc\uc815\uc5d0\uc11c <code>+<\/code> \u2192 \uacf5\ubc31, <code>%xx<\/code> \u2192 \uc6d0\ubb38 \ubb38\uc790\ub85c <strong>URL-Decoding \uc790\ub3d9 \ucc98\ub9ac<\/strong>\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 2) <code>form<\/code> \uc774\ub780?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>POST Body \ub85c \ubcf4\ub0bc <strong><code>x-www-form-urlencoded<\/code><\/strong> \ud615\uc2dd\uc758 \ub370\uc774\ud130\ub97c \ub2f4\uc744 <code>Dictionary&lt;string,string&gt;<\/code> \uc785\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>StringComparer.OrdinalIgnoreCase<\/code> \uc635\uc158\uc744 \uc8fc\uc5c8\uae30 \ub54c\ubb38\uc5d0 <strong>key \ub300\uc18c\ubb38\uc790 \uad6c\ubd84 \uc548 \ud568<\/strong><br>(\uc608: <code>\"ID\"<\/code> \uc640 <code>\"id\"<\/code> \ub97c \ub3d9\uc77c \ud0a4\ub85c \ucc98\ub9ac)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<pre class=\"wp-block-code\"><code>foreach (string key in parsed.AllKeys)\n{\n    if (string.IsNullOrEmpty(key)) continue;\n    form&#91;key] = parsed&#91;key] ?? string.Empty;\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 3) \ud30c\uc2f1\ub41c Parameter \uac12\ub4e4\uc744 Dictionary(form) \uc5d0 \ubaa8\ub450 \ubcf5\uc0ac<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>parsed.AllKeys<\/code> \u2192 Parameter\uc5d0\uc11c \ucd94\ucd9c\ub41c \ubaa8\ub4e0 Key \ubaa9\ub85d<\/li>\n\n\n\n<li>Key\uac00 \ube44\uc5b4\uc788\uc9c0 \uc54a\ub2e4\uba74 <code>Dictionary<\/code> \uc5d0 \ucd94\uac00<br>(Value \uac00 null\uc774\uba74 <code>\"\"<\/code> \ub85c \ub300\uccb4)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 \uacb0\uacfc:<br><code>Parameter<\/code> \ub85c \ub4e4\uc5b4\uc628 \ubaa8\ub4e0 \uac12\uc774 <strong>form[]<\/strong> \uc548\uc5d0 \ub4e4\uc5b4\uac00\uac8c \ub429\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>\u2705 \ubcc0\uacbd \ud3ec\uc778\ud2b8 \uae30\uc874 \ubcc0\uacbd ?ProductNumber=&#8230;&amp;Parameter=&#8230; HTTP Body(Form) \ub85c \uc804\uc1a1 HttpUtility.UrlDecode(fullUrl) \ubd88\ud544\uc694 \u2192 \uc81c\uac70 GetAsync PostAsync \u2705 \uc7a5\uc810 \u2714 \uae34 XML\/\uc774\ub984\/\uc8fc\uc18c \uac19\uc740 \uac12\ub3c4 \uc548\uc804\ud558\uac8c \uc804\uc1a1\u2714 <a class=\"mh-excerpt-more\" href=\"https:\/\/www.auctionpro.co.kr\/?p=9939\" title=\"\ud638\ucd9c\ubd80\ubd84  Get \uc5d0\uc11c Post \ub85c \ubcc0\uacbd\">[&#8230;]<\/a><\/p>\n<\/div>","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[10],"tags":[],"class_list":["post-9939","post","type-post","status-publish","format-standard","hentry","category-devc"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/9939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9939"}],"version-history":[{"count":0,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/9939\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}