[{"data":1,"prerenderedAt":1127},["ShallowReactive",2],{"site-config":3,"developers-\u002Fdevelopers\u002Fexamples\u002Fjava":158,"developer-documents":951},{"brand":4,"navigation":10,"navDropdowns":34,"headerCta":117,"footer":121,"footerBrand":142,"footerQr":145,"seoDefaults":153},{"name":5,"domain":6,"logoMark":7,"hotline":8,"serviceTime":9},"只只HTTP代理","- Zzhttp.com -","\u002Fimages\u002Ffigma\u002Fslices\u002Fauth-logo-mark.svg","138 5210 3516","周一至周天 9:00-22:00",[11,14,20,24,28,31],{"label":12,"href":13},"首页","\u002F",{"label":15,"href":16,"badge":17,"dropdown":18,"dropdownKey":19},"套餐购买","\u002Fpricing","热销",true,"packages",{"label":21,"href":22,"dropdown":18,"dropdownKey":23},"业务场景","\u002Fscenarios\u002Fecommerce","solutions",{"label":25,"href":26,"dropdown":18,"dropdownKey":27},"资源中心","\u002Fhelp","help",{"label":29,"href":30},"合作伙伴","\u002Fpartners",{"label":32,"href":33},"登录","\u002Fconsole\u002Flogin",{"packages":35,"solutions":55,"help":90},{"ariaLabel":36,"groups":37},"海外套餐购买下拉菜单",[38],{"label":39,"href":16,"items":40},"海外动态住宅",[41,49],{"title":42,"body":43,"featured":18,"primary":44,"secondary":46},"动态住宅套餐","覆盖全球动态住宅IP，支持按量套餐，按需使用更灵活。",{"label":45,"href":16},"查看套餐",{"label":47,"href":48},"进入控制台","\u002Fconsole\u002Fdynamic-buy",{"title":50,"body":51,"primary":52},"企业定制","提供专属资源、客户经理与技术支持，满足企业定制需求。",{"label":53,"href":54},"立即定制","\u002Fenterprise-custom",{"ariaLabel":56,"groups":57},"业务场景下拉菜单",[58],{"label":21,"href":22,"items":59},[60,65,70,75,80,85],{"title":61,"body":62,"primary":63},"电商营销","支持价格监测、广告验证和多账号环境隔离。",{"label":64,"href":22},"查看方案",{"title":66,"body":67,"primary":68},"媒体矩阵","提升多账号内容发布、互动与素材分发稳定性。",{"label":64,"href":69},"\u002Fscenarios\u002Fmedia-matrix",{"title":71,"body":72,"primary":73},"舆情处理","快速采集公开舆情信息，提升响应和研判效率。",{"label":64,"href":74},"\u002Fscenarios\u002Fpublic-opinion",{"title":76,"body":77,"primary":78},"网页抓取","面向公开网页数据采集，提供稳定代理访问能力。",{"label":64,"href":79},"\u002Fscenarios\u002Fweb-scraping",{"title":81,"body":82,"primary":83},"品牌保护","监测品牌侵权、假冒和区域展示差异。",{"label":64,"href":84},"\u002Fscenarios\u002Fbrand-protection",{"title":86,"body":87,"primary":88},"旅游信息聚合","聚合机票、酒店和目的地公开信息，支撑价格对比。",{"label":64,"href":89},"\u002Fscenarios\u002Ftravel-aggregation",{"ariaLabel":91,"displayMode":92,"groups":93},"资源中心下拉菜单","all-groups",[94,108],{"label":95,"href":26,"items":96},"帮助中心",[97,103],{"title":98,"body":99,"primary":100},"代理接入教程","查看 API、账密和白名单接入说明。",{"label":101,"href":102},"查看教程","\u002Fdevelopers",{"title":104,"body":105,"primary":106},"常见问题","了解套餐、支付、提取和售后相关问题。",{"label":107,"href":26},"查看问题",{"label":109,"href":110,"items":111},"资讯中心","\u002Fnews",[112],{"title":113,"body":114,"primary":115},"新闻动态","获取产品新闻、海外代理实践、公开数据抓取方法与合作伙伴生态动态。",{"label":116,"href":110},"查看资讯",{"label":118,"href":119,"badge":120},"注册","\u002Fconsole\u002Fregister","认证赠10元",{"description":122,"groups":123,"copyright":141},"安全合规的 HTTP 代理 IP 服务",[124,127,131,134],{"title":125,"links":126},"站点导航",[12,15],{"title":128,"links":129},"全球代理",[130,50],"动态代理",{"title":25,"links":132},[133,95,113],"开发者中心",{"title":135,"links":136},"关于我们",[137,138,139,140],"公司简介","服务协议","隐私协议","退款政策","© 2026 只只HTTP代理. All Rights Reserved.",{"logoMark":143,"brandName":5,"brandDomain":6,"figmaNodeId":144},"\u002Fimages\u002Ffigma\u002Fslices\u002Ffooter-logo-mark.svg","166:412",{"baseImage":146,"overlayImage":147,"phoneIcon":148,"contactDivider":149,"bottomDivider":150,"contactLabel":151,"figmaNodeId":152},"\u002Fimages\u002Ffigma\u002Fslices\u002Ffooter-qr-base@2x.png","\u002Fimages\u002Ffigma\u002Fslices\u002Ffooter-qr-overlay@2x.png","\u002Fimages\u002Ffigma\u002Fslices\u002Ffooter-phone-icon.svg","\u002Fimages\u002Ffigma\u002Fslices\u002Ffooter-contact-divider.svg","\u002Fimages\u002Ffigma\u002Fslices\u002Ffooter-bottom-divider.svg","商务合作","157:2052",{"title":154,"description":155,"siteName":5,"ogImage":156,"robots":157},"只只HTTP代理 - 稳定安全的海外 IP 方案","9000万+纯净住宅 IP，为 AI 训练、数据采集和全球业务提供稳定安全的代理方案。","\u002Fimages\u002Fseo\u002Fog-default.png","index, follow, max-image-preview:large",{"id":159,"title":160,"body":161,"description":932,"extension":933,"featured":934,"keywords":935,"meta":939,"navigation":18,"order":940,"path":941,"related":942,"schemaType":946,"seo":947,"stem":948,"updatedAt":949,"__hash__":950},"developers\u002Fdevelopers\u002Fexamples\u002Fjava.md","Java HttpClient 代理接入示例",{"type":162,"value":163,"toc":925},"minimark",[164,173,177,205,208,876,879,894,897,911,914,921],[165,166,167,168,172],"p",{},"JDK 11 及以上可直接使用标准库 ",[169,170,171],"code",{},"java.net.http.HttpClient","，无需为基础 HTTP 代理访问增加第三方客户端。",[174,175,176],"h2",{"id":176},"前置条件",[178,179,180,184,202],"ul",{},[181,182,183],"li",{},"运行环境使用 JDK 11 或更高版本。",[181,185,186,187,190,191,190,194,197,198,201],{},"通过受控环境注入 ",[169,188,189],{},"PROXY_HOST","、",[169,192,193],{},"PROXY_PORT",[169,195,196],{},"PROXY_USERNAME"," 和 ",[169,199,200],{},"PROXY_PASSWORD","。",[181,203,204],{},"代理密码只保留在进程环境或密钥服务中。",[174,206,207],{"id":207},"完整示例",[209,210,215],"pre",{"className":211,"code":212,"language":213,"meta":214,"style":214},"language-java shiki shiki-themes github-light github-dark","import java.net.Authenticator;\nimport java.net.InetSocketAddress;\nimport java.net.PasswordAuthentication;\nimport java.net.ProxySelector;\nimport java.net.URI;\nimport java.net.http.HttpClient;\nimport java.net.http.HttpRequest;\nimport java.net.http.HttpResponse;\nimport java.time.Duration;\n\npublic final class ProxyExample {\n    \u002F**\n     * 使用 JDK HttpClient 通过账密代理请求公开出口检测地址。\n     *\u002F\n    public static void main(String[] args) throws Exception {\n        String proxyHost = System.getenv(\"PROXY_HOST\");\n        int proxyPort = Integer.parseInt(System.getenv(\"PROXY_PORT\"));\n        String proxyUsername = System.getenv(\"PROXY_USERNAME\");\n        char[] proxyPassword = System.getenv(\"PROXY_PASSWORD\").toCharArray();\n\n        HttpClient client = HttpClient.newBuilder()\n            .connectTimeout(Duration.ofSeconds(10))\n            .proxy(ProxySelector.of(new InetSocketAddress(proxyHost, proxyPort)))\n            .authenticator(new Authenticator() {\n                \u002F** 仅向代理服务器提供认证信息，避免响应目标站认证挑战。 *\u002F\n                @Override\n                protected PasswordAuthentication getPasswordAuthentication() {\n                    if (getRequestorType() != RequestorType.PROXY) return null;\n                    return new PasswordAuthentication(proxyUsername, proxyPassword);\n                }\n            })\n            .build();\n\n        HttpRequest request = HttpRequest.newBuilder()\n            .uri(URI.create(\"https:\u002F\u002F\u003Cpublic-test-host>\u002Fip\"))\n            .timeout(Duration.ofSeconds(30))\n            .GET()\n            .build();\n        HttpResponse\u003CString> response = client.send(\n            request,\n            HttpResponse.BodyHandlers.ofString()\n        );\n\n        if (response.statusCode() >= 400) {\n            throw new IllegalStateException(\"HTTP \" + response.statusCode());\n        }\n        System.out.println(response.body());\n    }\n}\n","java","",[169,216,217,230,238,246,254,262,270,278,286,294,300,319,326,332,338,375,399,429,448,477,482,499,523,548,566,572,581,595,625,640,646,652,662,667,682,703,722,732,741,763,769,780,786,791,814,841,847,864,870],{"__ignoreMap":214},[218,219,222,226],"span",{"class":220,"line":221},"line",1,[218,223,225],{"class":224},"szBVR","import",[218,227,229],{"class":228},"sVt8B"," java.net.Authenticator;\n",[218,231,233,235],{"class":220,"line":232},2,[218,234,225],{"class":224},[218,236,237],{"class":228}," java.net.InetSocketAddress;\n",[218,239,241,243],{"class":220,"line":240},3,[218,242,225],{"class":224},[218,244,245],{"class":228}," java.net.PasswordAuthentication;\n",[218,247,249,251],{"class":220,"line":248},4,[218,250,225],{"class":224},[218,252,253],{"class":228}," java.net.ProxySelector;\n",[218,255,257,259],{"class":220,"line":256},5,[218,258,225],{"class":224},[218,260,261],{"class":228}," java.net.URI;\n",[218,263,265,267],{"class":220,"line":264},6,[218,266,225],{"class":224},[218,268,269],{"class":228}," java.net.http.HttpClient;\n",[218,271,273,275],{"class":220,"line":272},7,[218,274,225],{"class":224},[218,276,277],{"class":228}," java.net.http.HttpRequest;\n",[218,279,281,283],{"class":220,"line":280},8,[218,282,225],{"class":224},[218,284,285],{"class":228}," java.net.http.HttpResponse;\n",[218,287,289,291],{"class":220,"line":288},9,[218,290,225],{"class":224},[218,292,293],{"class":228}," java.time.Duration;\n",[218,295,297],{"class":220,"line":296},10,[218,298,299],{"emptyLinePlaceholder":18},"\n",[218,301,303,306,309,312,316],{"class":220,"line":302},11,[218,304,305],{"class":224},"public",[218,307,308],{"class":224}," final",[218,310,311],{"class":224}," class",[218,313,315],{"class":314},"sScJk"," ProxyExample",[218,317,318],{"class":228}," {\n",[218,320,322],{"class":220,"line":321},12,[218,323,325],{"class":324},"sJ8bj","    \u002F**\n",[218,327,329],{"class":220,"line":328},13,[218,330,331],{"class":324},"     * 使用 JDK HttpClient 通过账密代理请求公开出口检测地址。\n",[218,333,335],{"class":220,"line":334},14,[218,336,337],{"class":324},"     *\u002F\n",[218,339,341,344,347,350,353,356,359,362,366,369,372],{"class":220,"line":340},15,[218,342,343],{"class":224},"    public",[218,345,346],{"class":224}," static",[218,348,349],{"class":224}," void",[218,351,352],{"class":314}," main",[218,354,355],{"class":228},"(",[218,357,358],{"class":224},"String",[218,360,361],{"class":228},"[] ",[218,363,365],{"class":364},"s4XuR","args",[218,367,368],{"class":228},") ",[218,370,371],{"class":224},"throws",[218,373,374],{"class":228}," Exception {\n",[218,376,378,381,384,387,390,392,396],{"class":220,"line":377},16,[218,379,380],{"class":228},"        String proxyHost ",[218,382,383],{"class":224},"=",[218,385,386],{"class":228}," System.",[218,388,389],{"class":314},"getenv",[218,391,355],{"class":228},[218,393,395],{"class":394},"sZZnC","\"PROXY_HOST\"",[218,397,398],{"class":228},");\n",[218,400,402,405,408,410,413,416,419,421,423,426],{"class":220,"line":401},17,[218,403,404],{"class":224},"        int",[218,406,407],{"class":228}," proxyPort ",[218,409,383],{"class":224},[218,411,412],{"class":228}," Integer.",[218,414,415],{"class":314},"parseInt",[218,417,418],{"class":228},"(System.",[218,420,389],{"class":314},[218,422,355],{"class":228},[218,424,425],{"class":394},"\"PROXY_PORT\"",[218,427,428],{"class":228},"));\n",[218,430,432,435,437,439,441,443,446],{"class":220,"line":431},18,[218,433,434],{"class":228},"        String proxyUsername ",[218,436,383],{"class":224},[218,438,386],{"class":228},[218,440,389],{"class":314},[218,442,355],{"class":228},[218,444,445],{"class":394},"\"PROXY_USERNAME\"",[218,447,398],{"class":228},[218,449,451,454,457,459,461,463,465,468,471,474],{"class":220,"line":450},19,[218,452,453],{"class":224},"        char",[218,455,456],{"class":228},"[] proxyPassword ",[218,458,383],{"class":224},[218,460,386],{"class":228},[218,462,389],{"class":314},[218,464,355],{"class":228},[218,466,467],{"class":394},"\"PROXY_PASSWORD\"",[218,469,470],{"class":228},").",[218,472,473],{"class":314},"toCharArray",[218,475,476],{"class":228},"();\n",[218,478,480],{"class":220,"line":479},20,[218,481,299],{"emptyLinePlaceholder":18},[218,483,485,488,490,493,496],{"class":220,"line":484},21,[218,486,487],{"class":228},"        HttpClient client ",[218,489,383],{"class":224},[218,491,492],{"class":228}," HttpClient.",[218,494,495],{"class":314},"newBuilder",[218,497,498],{"class":228},"()\n",[218,500,502,505,508,511,514,516,520],{"class":220,"line":501},22,[218,503,504],{"class":228},"            .",[218,506,507],{"class":314},"connectTimeout",[218,509,510],{"class":228},"(Duration.",[218,512,513],{"class":314},"ofSeconds",[218,515,355],{"class":228},[218,517,519],{"class":518},"sj4cs","10",[218,521,522],{"class":228},"))\n",[218,524,526,528,531,534,537,539,542,545],{"class":220,"line":525},23,[218,527,504],{"class":228},[218,529,530],{"class":314},"proxy",[218,532,533],{"class":228},"(ProxySelector.",[218,535,536],{"class":314},"of",[218,538,355],{"class":228},[218,540,541],{"class":224},"new",[218,543,544],{"class":314}," InetSocketAddress",[218,546,547],{"class":228},"(proxyHost, proxyPort)))\n",[218,549,551,553,556,558,560,563],{"class":220,"line":550},24,[218,552,504],{"class":228},[218,554,555],{"class":314},"authenticator",[218,557,355],{"class":228},[218,559,541],{"class":224},[218,561,562],{"class":314}," Authenticator",[218,564,565],{"class":228},"() {\n",[218,567,569],{"class":220,"line":568},25,[218,570,571],{"class":324},"                \u002F** 仅向代理服务器提供认证信息，避免响应目标站认证挑战。 *\u002F\n",[218,573,575,578],{"class":220,"line":574},26,[218,576,577],{"class":228},"                @",[218,579,580],{"class":224},"Override\n",[218,582,584,587,590,593],{"class":220,"line":583},27,[218,585,586],{"class":224},"                protected",[218,588,589],{"class":228}," PasswordAuthentication ",[218,591,592],{"class":314},"getPasswordAuthentication",[218,594,565],{"class":228},[218,596,598,601,604,607,610,613,616,619,622],{"class":220,"line":597},28,[218,599,600],{"class":224},"                    if",[218,602,603],{"class":228}," (",[218,605,606],{"class":314},"getRequestorType",[218,608,609],{"class":228},"() ",[218,611,612],{"class":224},"!=",[218,614,615],{"class":228}," RequestorType.PROXY) ",[218,617,618],{"class":224},"return",[218,620,621],{"class":518}," null",[218,623,624],{"class":228},";\n",[218,626,628,631,634,637],{"class":220,"line":627},29,[218,629,630],{"class":224},"                    return",[218,632,633],{"class":224}," new",[218,635,636],{"class":314}," PasswordAuthentication",[218,638,639],{"class":228},"(proxyUsername, proxyPassword);\n",[218,641,643],{"class":220,"line":642},30,[218,644,645],{"class":228},"                }\n",[218,647,649],{"class":220,"line":648},31,[218,650,651],{"class":228},"            })\n",[218,653,655,657,660],{"class":220,"line":654},32,[218,656,504],{"class":228},[218,658,659],{"class":314},"build",[218,661,476],{"class":228},[218,663,665],{"class":220,"line":664},33,[218,666,299],{"emptyLinePlaceholder":18},[218,668,670,673,675,678,680],{"class":220,"line":669},34,[218,671,672],{"class":228},"        HttpRequest request ",[218,674,383],{"class":224},[218,676,677],{"class":228}," HttpRequest.",[218,679,495],{"class":314},[218,681,498],{"class":228},[218,683,685,687,690,693,696,698,701],{"class":220,"line":684},35,[218,686,504],{"class":228},[218,688,689],{"class":314},"uri",[218,691,692],{"class":228},"(URI.",[218,694,695],{"class":314},"create",[218,697,355],{"class":228},[218,699,700],{"class":394},"\"https:\u002F\u002F\u003Cpublic-test-host>\u002Fip\"",[218,702,522],{"class":228},[218,704,706,708,711,713,715,717,720],{"class":220,"line":705},36,[218,707,504],{"class":228},[218,709,710],{"class":314},"timeout",[218,712,510],{"class":228},[218,714,513],{"class":314},[218,716,355],{"class":228},[218,718,719],{"class":518},"30",[218,721,522],{"class":228},[218,723,725,727,730],{"class":220,"line":724},37,[218,726,504],{"class":228},[218,728,729],{"class":314},"GET",[218,731,498],{"class":228},[218,733,735,737,739],{"class":220,"line":734},38,[218,736,504],{"class":228},[218,738,659],{"class":314},[218,740,476],{"class":228},[218,742,744,747,749,752,754,757,760],{"class":220,"line":743},39,[218,745,746],{"class":228},"        HttpResponse\u003C",[218,748,358],{"class":224},[218,750,751],{"class":228},"> response ",[218,753,383],{"class":224},[218,755,756],{"class":228}," client.",[218,758,759],{"class":314},"send",[218,761,762],{"class":228},"(\n",[218,764,766],{"class":220,"line":765},40,[218,767,768],{"class":228},"            request,\n",[218,770,772,775,778],{"class":220,"line":771},41,[218,773,774],{"class":228},"            HttpResponse.BodyHandlers.",[218,776,777],{"class":314},"ofString",[218,779,498],{"class":228},[218,781,783],{"class":220,"line":782},42,[218,784,785],{"class":228},"        );\n",[218,787,789],{"class":220,"line":788},43,[218,790,299],{"emptyLinePlaceholder":18},[218,792,794,797,800,803,805,808,811],{"class":220,"line":793},44,[218,795,796],{"class":224},"        if",[218,798,799],{"class":228}," (response.",[218,801,802],{"class":314},"statusCode",[218,804,609],{"class":228},[218,806,807],{"class":224},">=",[218,809,810],{"class":518}," 400",[218,812,813],{"class":228},") {\n",[218,815,817,820,822,825,827,830,833,836,838],{"class":220,"line":816},45,[218,818,819],{"class":224},"            throw",[218,821,633],{"class":224},[218,823,824],{"class":314}," IllegalStateException",[218,826,355],{"class":228},[218,828,829],{"class":394},"\"HTTP \"",[218,831,832],{"class":224}," +",[218,834,835],{"class":228}," response.",[218,837,802],{"class":314},[218,839,840],{"class":228},"());\n",[218,842,844],{"class":220,"line":843},46,[218,845,846],{"class":228},"        }\n",[218,848,850,853,856,859,862],{"class":220,"line":849},47,[218,851,852],{"class":228},"        System.out.",[218,854,855],{"class":314},"println",[218,857,858],{"class":228},"(response.",[218,860,861],{"class":314},"body",[218,863,840],{"class":228},[218,865,867],{"class":220,"line":866},48,[218,868,869],{"class":228},"    }\n",[218,871,873],{"class":220,"line":872},49,[218,874,875],{"class":228},"}\n",[174,877,878],{"id":878},"预期结果",[178,880,881,884,887],{},[181,882,883],{},"客户端先连接代理，再为 HTTPS 目标建立隧道。",[181,885,886],{},"响应正文显示代理出口，状态码小于 400。",[181,888,889,890,893],{},"长生命周期服务应复用 ",[169,891,892],{},"HttpClient","，保留连接池收益。",[174,895,896],{"id":896},"错误处理",[178,898,899,902,908],{},[181,900,901],{},"407 表示代理认证未通过，检查用户名、密码和权益。",[181,903,904,907],{},[169,905,906],{},"HttpConnectTimeoutException"," 表示连接阶段超过 10 秒。",[181,909,910],{},"目标状态码和代理连接异常必须分开记录。",[174,912,913],{"id":913},"安全提示",[165,915,916,917,920],{},"不要手工写入 ",[169,918,919],{},"Proxy-Authorization","，也不要在异常日志中输出环境变量。代理身份变化时创建新的客户端，避免旧连接继续携带原认证状态。",[922,923,924],"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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":214,"searchDepth":240,"depth":240,"links":926},[927,928,929,930,931],{"id":176,"depth":232,"text":176},{"id":207,"depth":232,"text":207},{"id":878,"depth":232,"text":878},{"id":896,"depth":232,"text":896},{"id":913,"depth":232,"text":913},"使用 JDK HttpClient、ProxySelector、代理认证和超时完成 HTTPS 请求。","md",false,[936,892,937,938],"Java","ProxySelector","代理认证",{},"90","\u002Fdevelopers\u002Fexamples\u002Fjava",[943,944,945],"\u002Fdevelopers\u002Fexamples\u002Fgo","\u002Fdevelopers\u002Fproxy\u002Fconnection-best-practices","\u002Fdevelopers\u002Ferrors\u002Fproxy-407","HowTo",{"title":160,"description":932},"developers\u002Fexamples\u002Fjava","2026-07-31","kDPY5I8uYz-nXsxvXnTBt21ldgqPgpb7v2e3KRFEE_M",[952,956,961,966,970,975,979,983,988,993,998,1003,1008,1012,1015,1019,1023,1027,1031,1035,1039,1043,1047,1051,1056,1060,1064,1068,1072,1077,1081,1085,1089,1094,1098,1102,1107,1111,1114,1119,1122,1126],{"path":953,"title":954,"description":955,"order":519,"updatedAt":949,"featured":18},"\u002Fdevelopers\u002Fapi\u002Fextract","API 提取代理地址","概述 API 提取的来源白名单、登录态 POST、无登录态 GET、参数与返回结果。",{"path":957,"title":958,"description":959,"order":519,"updatedAt":960,"featured":18},"\u002Fdevelopers\u002Fauthentication\u002Foverview","认证模型总览","区分控制台登录态、账户 API 令牌、来源 IPv4 白名单和代理账密四种认证层，避免凭据错用。","2026-08-07",{"path":962,"title":963,"description":964,"order":519,"updatedAt":965,"featured":934},"\u002Fdevelopers\u002Fchangelog","文档更新记录","记录帮助中心和开发者中心中影响接入行为、内容结构与示例的重要更新。","2026-08-08",{"path":967,"title":968,"description":969,"order":519,"updatedAt":960,"featured":18},"\u002Fdevelopers\u002Ferrors\u002Ferror-codes","常见错误码与处理建议","汇总实名、白名单、来源网络、认证和出口路由相关业务码及恢复方式。",{"path":971,"title":972,"description":973,"order":519,"updatedAt":974,"featured":18},"\u002Fdevelopers\u002Fexamples\u002Fcurl","curl 代理接入示例","使用占位凭据分别演示 HTTP\u002FHTTPS CONNECT 和 SOCKS5 TCP 请求。","2026-08-02",{"path":976,"title":977,"description":978,"order":519,"updatedAt":949,"featured":18},"\u002Fdevelopers\u002Fgetting-started\u002Fquickstart","开发者快速开始","从实名认证、选择账密或 API 提取，到使用占位配置完成第一个代理请求。",{"path":980,"title":981,"description":982,"order":519,"updatedAt":949,"featured":18},"\u002Fdevelopers\u002Fproxy\u002Faccount-auth","账密认证接入","说明账密代理配置生成、地区和会话选择、客户端字段、安全存储及来源限制。",{"path":984,"title":985,"description":986,"order":987,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fexamples\u002Fphp","PHP cURL 代理接入示例","使用 PHP cURL 扩展、账密环境变量和连接超时完成代理请求。","100",{"path":989,"title":990,"description":991,"order":992,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fexamples\u002Fcsharp","C# HttpClient 代理接入示例","使用 .NET HttpClient、WebProxy、代理账密和请求超时完成 HTTPS 访问。","110",{"path":994,"title":995,"description":996,"order":997,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fexamples\u002Frust","Rust reqwest 代理接入示例","使用 reqwest Proxy、账密认证、异步客户端和超时完成代理请求。","120",{"path":999,"title":1000,"description":1001,"order":1002,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fexamples\u002Fpostman","Postman 代理接入示例","在 Postman 桌面应用中配置自定义代理、账密认证并验证 HTTPS 出口。","130",{"path":1004,"title":1005,"description":1006,"order":1007,"updatedAt":949,"featured":18},"\u002Fdevelopers\u002Fapi\u002Fextract-post","登录态 POST 提取接口","说明控制台登录态批量提取的请求字段、校验顺序、幂等和返回结果。","20",{"path":1009,"title":1010,"description":1011,"order":1007,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fauthentication\u002Fconsole-session","控制台登录态如何用于 API 请求？","说明同源控制台 Cookie、CSRF 防护、登录态 POST 提取和服务端调用边界。",{"path":945,"title":1013,"description":1014,"order":1007,"updatedAt":949,"featured":18},"开发者如何排查 407？","从代理协议、认证头、完整用户名、子账号状态和来源白名单定位 407。",{"path":1016,"title":1017,"description":1018,"order":1007,"updatedAt":974,"featured":18},"\u002Fdevelopers\u002Fexamples\u002Fpython","Python Requests 代理接入示例","使用 requests 读取环境变量、设置 HTTP 代理、超时并进行有限错误处理。",{"path":1020,"title":1021,"description":1022,"order":1007,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fgetting-started\u002Fenvironment-checklist","开发环境接入检查清单","在编码前检查运行网络、账号权益、代理协议、超时、日志和凭据存储。",{"path":1024,"title":1025,"description":1026,"order":1007,"updatedAt":949,"featured":18},"\u002Fdevelopers\u002Fproxy\u002Fprotocol-selection","代理协议选择","从 HTTP 客户端、HTTPS CONNECT、SOCKS5 TCP 和 DNS 行为选择接入协议。",{"path":1028,"title":1029,"description":1030,"order":719,"updatedAt":949,"featured":18},"\u002Fdevelopers\u002Fapi\u002Fextract-get","来源白名单 GET 提取接口","说明无登录态 GET 提取如何按真实来源 IPv4 解析账号并返回 JSON 或 TXT。",{"path":1032,"title":1033,"description":1034,"order":719,"updatedAt":949,"featured":18},"\u002Fdevelopers\u002Fauthentication\u002Fsource-ip-whitelist","来源 IPv4 白名单认证","说明无登录态 GET 提取与共享端口如何按真实来源 IPv4 识别账号归属。",{"path":1036,"title":1037,"description":1038,"order":719,"updatedAt":949,"featured":18},"\u002Fdevelopers\u002Ferrors\u002Ftimeout-and-reset","超时与连接重置排查","按 DNS、TCP、CONNECT、TLS、请求和读取阶段诊断 timeout 与 ECONNRESET。",{"path":1040,"title":1041,"description":1042,"order":719,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fexamples\u002Fpython-httpx","Python HTTPX 代理接入示例","使用 HTTPX Client、账密环境变量和分层超时完成同步代理请求。",{"path":1044,"title":1045,"description":1046,"order":719,"updatedAt":949,"featured":18},"\u002Fdevelopers\u002Fgetting-started\u002Fverify-with-curl","使用 curl 验证代理接入","通过 HTTP、HTTPS CONNECT 和 SOCKS5 TCP 最小命令验证认证、出口和 DNS。",{"path":1048,"title":1049,"description":1050,"order":719,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fproxy\u002Fregion-parameters","账密代理地区参数","说明全球、洲随机区域、国家和部分州省的选择、签名配置和验证规则。",{"path":1052,"title":1053,"description":1054,"order":1055,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fapi\u002Fparameters","API 提取请求参数","列出数量、地区、协议、返回格式、分隔符及明确不接受的账密会话参数。","40",{"path":1057,"title":1058,"description":1059,"order":1055,"updatedAt":965,"featured":934},"\u002Fdevelopers\u002Fauthentication\u002Fapi-token","API 令牌认证","说明账户级 API 令牌的生成、查询参数认证、轮换和日志安全边界。",{"path":1061,"title":1062,"description":1063,"order":1055,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Ferrors\u002Fdns-and-tls","DNS 与 TLS 故障排查","区分网关解析、目标解析、CONNECT、证书链、SNI 和系统时间问题。",{"path":1065,"title":1066,"description":1067,"order":1055,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fexamples\u002Fpython-aiohttp","Python aiohttp 异步代理接入示例","使用 aiohttp ClientSession、代理认证和异步超时完成并发代理请求。",{"path":1069,"title":1070,"description":1071,"order":1055,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fproxy\u002Frotation-mode","轮换代理模式","解释新 TCP 连接的出口选择、连接复用影响、有限重试和并发策略。",{"path":1073,"title":1074,"description":1075,"order":1076,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fapi\u002Fresponse-formats","API 提取返回格式","说明 JSON、TXT、IP:PORT、分隔符、随机顺序和结果消费方式。","50",{"path":1078,"title":1079,"description":1080,"order":1076,"updatedAt":949,"featured":18},"\u002Fdevelopers\u002Ferrors\u002Flayered-diagnostics","代理请求分层诊断流程","用 DNS、TCP、认证、转发、TLS 和目标响应六层模型定位接入故障。",{"path":1082,"title":1083,"description":1084,"order":1076,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fexamples\u002Fselenium","Selenium 代理接入示例","使用 API 提取的来源白名单代理地址启动浏览器，并验证出口与任务隔离。",{"path":1086,"title":1087,"description":1088,"order":1076,"updatedAt":949,"featured":18},"\u002Fdevelopers\u002Fproxy\u002Fsticky-mode","粘性代理模式","说明 1–180 分钟粘性会话、完整用户名复用、并行隔离和出口变化恢复。",{"path":1090,"title":1091,"description":1092,"order":1093,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fapi\u002Fregion-values","API 提取地区值","说明国家与全球值的来源、实际国家记录、验证方式和账密地区参数差异。","60",{"path":1095,"title":1096,"description":1097,"order":1093,"updatedAt":949,"featured":18},"\u002Fdevelopers\u002Fexamples\u002Fnodejs","Node.js 代理接入示例","使用 undici ProxyAgent、环境变量、AbortSignal 超时和安全日志完成代理请求。",{"path":1099,"title":1100,"description":1101,"order":1093,"updatedAt":949,"featured":934},"\u002Fdevelopers\u002Fproxy\u002Fsession-isolation","如何隔离并行代理会话？","按任务、地区、子账号和粘性配置隔离连接池，避免凭据及状态串用。",{"path":1103,"title":1104,"description":1105,"order":1106,"updatedAt":949,"featured":18},"\u002Fdevelopers\u002Fapi\u002Frequest-id","requestId 与幂等处理","说明登录态 POST 提取的请求所有权、重复恢复、参数冲突和并发提交规则。","70",{"path":1108,"title":1109,"description":1110,"order":1106,"updatedAt":949,"featured":18},"\u002Fdevelopers\u002Fexamples\u002Fplaywright","Playwright 代理接入示例","在浏览器启动时配置账密代理，隔离上下文并验证出口地区。",{"path":944,"title":1112,"description":1113,"order":1106,"updatedAt":949,"featured":18},"代理连接与复用最佳实践","为超时、连接池、并发、重试、幂等和日志建立稳定的生产接入策略。",{"path":1115,"title":1116,"description":1117,"order":1118,"updatedAt":960,"featured":18},"\u002Fdevelopers\u002Fapi\u002Fretry-and-rate-limit","API 限流与重试策略","按状态码、幂等性和错误类型设计有限退避，避免重复授权和请求风暴。","80",{"path":943,"title":1120,"description":1121,"order":1118,"updatedAt":949,"featured":18},"Go 代理接入示例","使用 net\u002Fhttp、环境变量、Transport 和请求超时完成 HTTP 代理访问。",{"path":1123,"title":1124,"description":1125,"order":940,"updatedAt":965,"featured":18},"\u002Fdevelopers\u002Fapi\u002Fip-whitelists","IP 白名单 API","使用账户 API 令牌查询、批量新增和按 IP 批量删除账户白名单。",{"path":941,"title":160,"description":932,"order":940,"updatedAt":949,"featured":934},1786161235252]