Cefsharp: ์ˆ˜๋ฝ ํ—ค๋”๋ฅผ ๋ฎ์–ด์“ฐ๊ณ  ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2019๋…„ 03์›” 26์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: cefsharp/CefSharp

LoadRequest ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ํ›„ Accept ํ—ค๋”๋ฅผ ๋ฎ์–ด์“ฐ๋ฏ€๋กœ ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

IFrame.LoadRequest(IRequest) ๋ฅผ ํ†ตํ•ด LoadUrlWithPostData ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ACCEPT ํ—ค๋” ๊ฐ€ IRequeset.Headers์— ์ถ”๊ฐ€๋˜์—ˆ์ง€๋งŒ ๊ฒฐ๊ตญ ๋ฎ์–ด์ผ์Šต๋‹ˆ๋‹ค. ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์ด๊ธด ํ•˜์ง€๋งŒ OnBeforeResourceLoad ๋ฉ”์„œ๋“œ์—์„œ ์„ค์ •ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค .

private static void LoadUrl(ChromiumWebBrowser browser, string url, byte[] postDataBytes, string requestMethod = "POST", WebHeaderCollection headers = null)
        {
            using (var frame = browser.GetMainFrame())
            {
                ThrowExceptionIfFrameNull(frame);


                var initializePostData = requestMethod.ToLower() == "post";

                var request = frame.CreateRequest(initializePostData: initializePostData);
                if (initializePostData)
                {
                    request.InitializePostData();
                    request.PostData.AddData(postDataBytes);
                }

                request.Url = url;
                request.Method = requestMethod;

                if (headers != null && headers.HasKeys())
                {
                    var originHeader = request.Headers ?? new NameValueCollection();

                    foreach (string keyName in headers.AllKeys)
                    {
                        originHeader.Set(keyName, headers[keyName]);
                    }

                    var refererValue = headers[HttpRequestHeader.Referer];

                    // Set Referer
                    if (!string.IsNullOrEmpty(refererValue))
                    {
                        request.SetReferrer(refererValue, ReferrerPolicy.Default);
                    }


                    request.Headers = originHeader;
                }


                frame.LoadRequest(request);
            }
        }

        public static void LoadUrlWithPostDataLocal(this ChromiumWebBrowser browser, string url, byte[] postDataBytes, WebHeaderCollection headers = null)
        {
            LoadUrl(browser, url, postDataBytes, "POST", headers);
        }

๋‚ด ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

var postdata = "mact=1&search_flag=1&page=1&search_text=";
var buffer = Encoding.UTF8.GetBytes(postdata);
var cookies = "";
var headers = new WebHeaderCollection
{
        {"Accept","application/json, text/javascript, */*; q=0.01" },
        {HttpRequestHeader.Cookie,cookies }
};
//  Accept header will be rewritten  
browser.LoadUrlWithPostDataLocal(url, buffer, header);

๋‚˜๋ฅผ ๋„์™€์ค„ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

upstream

๋ชจ๋“  4 ๋Œ“๊ธ€

:wave: @DonetCracker , ๋ฒ„๊ทธ ๋ณด๊ณ  ๋ฐ ๊ธฐ๋Šฅ ์š”์ฒญ์—๋งŒ ๋ฌธ์ œ ์ถ”์ ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฌธ์ œ๋Š” ์ง€์› ์š”์ฒญ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋„์›€์„ ๋ฐ›์œผ๋ ค๋ฉด ์ง€์› ์ฑ„๋„์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
์งˆ๋ฌธ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Gitter , StackOverflow ๋˜๋Š” ceforum ์„ ์‚ฌ์šฉํ•˜์„ธ์š”( CEF ๊ด€๋ จ ์งˆ๋ฌธ์˜ ๊ฒฝ์šฐ).
CefSharp ๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ https://github.com/cefsharp/CefSharp/wiki/General-Usage ๋ฅผ ์ฝ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  LoadUrlWithPostData ์€ Obsolete ๋กœ ํ‘œ์‹œ๋˜์–ด ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค(#2705).

LoadRequest๋Š” ์ผ๋ฐ˜ ํƒ์ƒ‰ ํŒŒ์ดํ”„๋ผ์ธ์„ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค.

https://magpcss.org/ceforum/viewtopic.php?f=6&t=16592&p=41067#p41074

71.0.x ์˜ LoadRequest ์—๋Š” ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. CEF ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์ด๊ธด ํ•˜์ง€๋งŒ OnBeforeResourceLoad ๋ฉ”์„œ๋“œ์—์„œ ์„ค์ •ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค .

๊ทธ๊ฒƒ์ด ์œ ์ผํ•˜๊ฒŒ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. LoadRequest ๋Š” ์ด์ œ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์ด์ „ ๋ฒ„์ „์—์„œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋” ๊ตฌ์ฒด์ ์œผ๋กœ ๊ท€ํ•˜์˜ ๋ฌธ์ œ๋Š” https://magpcss.org/ceforum/viewtopic.php?f=6&t=16561&p=40960์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

upstream (์œผ)๋กœ ๋งˆ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋” ๊ตฌ์ฒด์ ์œผ๋กœ ๊ท€ํ•˜์˜ ๋ฌธ์ œ๋Š” https://magpcss.org/ceforum/viewtopic.php?f=6&t=16561&p=40960์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

upstream (์œผ)๋กœ ๋งˆ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ •๋ง ๊ณ ๋งˆ์›Œ์š”, ๋‹น์‹ ์€ ๋‚ด ์ƒ๋ช…์„ ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค!!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰