[{"data":1,"prerenderedAt":189},["ShallowReactive",2],{"content:\u002F2026\u002F04\u002Fkratos-request":3,"surround:\u002F2026\u002F04\u002Fkratos-request":180},{"id":4,"title":5,"body":6,"categories":158,"date":160,"description":161,"draft":162,"extension":163,"image":164,"meta":165,"navigation":77,"path":167,"permalink":164,"published":164,"readingTime":168,"recommend":164,"references":164,"seo":173,"sitemap":174,"stem":175,"tags":176,"type":178,"updated":160,"__hash__":179},"content\u002Fposts\u002F2026\u002F04\u002Fkratos-request.md","Kratos HTTP 请求与路由配置",{"type":7,"value":8,"toc":153},"minimark",[9,14,18,149],[10,11,13],"h2",{"id":12},"http","HTTP",[15,16,17],"h3",{"id":17},"获取原始http请求信息",[19,20,25],"pre",{"className":21,"code":22,"language":23,"meta":24,"style":24},"language-go shiki shiki-themes github-light github-dark","import (\n    khttp \"github.com\u002Fgo-kratos\u002Fkratos\u002Fv2\u002Ftransport\u002Fhttp\"\n)\n\nhr, ok := khttp.RequestFromServerContext(ctx)\nif !ok {\n    return nil, errors.New(\"get http request failed\")\n}\n","go","",[26,27,28,45,66,72,79,102,117,143],"code",{"__ignoreMap":24},[29,30,33,37,41],"span",{"class":31,"data-line":32,"line":32},"line",1,[29,34,36],{"class":35},"szBVR","import",[29,38,40],{"class":39},"sVt8B"," ",[29,42,44],{"class":43},"sSDpw","(\n",[29,46,48,52,55,59,63],{"class":31,"data-line":47,"line":47},2,[29,49,51],{"class":50},"indent","    ",[29,53,54],{"class":39},"khttp ",[29,56,58],{"class":57},"sZZnC","\"",[29,60,62],{"class":61},"sScJk","github.com\u002Fgo-kratos\u002Fkratos\u002Fv2\u002Ftransport\u002Fhttp",[29,64,65],{"class":57},"\"\n",[29,67,69],{"class":31,"data-line":68,"line":68},3,[29,70,71],{"class":43},")\n",[29,73,75],{"class":31,"data-line":74,"line":74},4,[29,76,78],{"emptyLinePlaceholder":77},true,"\n",[29,80,82,85,88,91,94,97,100],{"class":31,"data-line":81,"line":81},5,[29,83,84],{"class":39},"hr, ok ",[29,86,87],{"class":35},":=",[29,89,90],{"class":39}," khttp.",[29,92,93],{"class":61},"RequestFromServerContext",[29,95,96],{"class":43},"(",[29,98,99],{"class":39},"ctx",[29,101,71],{"class":43},[29,103,105,108,111,114],{"class":31,"data-line":104,"line":104},6,[29,106,107],{"class":35},"if",[29,109,110],{"class":35}," !",[29,112,113],{"class":39},"ok ",[29,115,116],{"class":43},"{\n",[29,118,120,122,125,129,132,135,138,141],{"class":31,"data-line":119,"line":119},7,[29,121,51],{"class":50},[29,123,124],{"class":35},"return",[29,126,128],{"class":127},"sj4cs"," nil",[29,130,131],{"class":39},", errors.",[29,133,134],{"class":61},"New",[29,136,96],{"class":137},"sJX2D",[29,139,140],{"class":57},"\"get http request failed\"",[29,142,71],{"class":137},[29,144,146],{"class":31,"data-line":145,"line":145},8,[29,147,148],{"class":43},"}\n",[150,151,152],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sSDpw, html code.shiki .sSDpw{--shiki-default:#005cc5;--shiki-dark:#79b8ff}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJX2D, html code.shiki .sJX2D{--shiki-default:#e36209;--shiki-dark:#ffab70}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":24,"searchDepth":74,"depth":74,"links":154},[155],{"id":12,"depth":47,"text":13,"children":156},[157],{"id":17,"depth":68,"text":17},[159],"微服务","2026-04-12","介绍 Kratos HTTP 服务中的请求处理、路由注册和 transport\u002Fhttp 组件的基本使用方式。",false,"md",null,{"slots":166},{},"\u002F2026\u002F04\u002Fkratos-request",{"text":169,"minutes":170,"time":171,"words":172},"1 min read",0.145,8700,29,{"title":5,"description":161},{"loc":167},"posts\u002F2026\u002F04\u002Fkratos-request",[177,159],"Kratos","tech","sNF8h-iV3Nx-5-IsA3ms6VQeiQOk-gj3GYgo1JMkb2c",[181,185],{"title":182,"path":183,"stem":184,"date":160,"type":178,"children":-1},"Kratos 日志系统与 Zap 集成","\u002F2026\u002F04\u002Fkratos-logger","posts\u002F2026\u002F04\u002Fkratos-logger",{"title":186,"path":187,"stem":188,"date":160,"type":178,"children":-1},"Kratos 自定义 HTTP 响应与错误处理","\u002F2026\u002F04\u002Fkratos-resp-proxy","posts\u002F2026\u002F04\u002Fkratos-resp-proxy",1786555054154]