当前位置: 首页 > news >正文

怎么利用招聘网站做薪酬调查免费推广软件工具

怎么利用招聘网站做薪酬调查,免费推广软件工具,网站建设的意见建议,无锡网站设背景 某日使用okhttp设置代理并发送爬虫请求时,发现部分url请求没有走代理直接和目标url建立了连接,伪代码如下。初始化okhttpClient时设置了proxySelecter代理,但是调用okhttpClient.newCall请求时并没用调用proxySelecter.select函数获取代…

背景

某日使用okhttp设置代理并发送爬虫请求时,发现部分url请求没有走代理直接和目标url建立了连接,伪代码如下。初始化okhttpClient时设置了proxySelecter代理,但是调用okhttpClient.newCall请求时并没用调用proxySelecter.select函数获取代理,日志也没有打印。

    public void call(String url) {ProxySelector proxySelector = new ProxySelector() {@Overridepublic List<Proxy> select(URI uri) {log.info("run into proxy");Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 80));return Collections.singletonList(proxy);}@Overridepublic void connectFailed(URI uri, SocketAddress sa, IOException ioe) {return;}};OkHttpClient client = new OkHttpClient.Builder().proxySelector(proxySelector).build();okhttp3.Request request = new Request.Builder().url(url).build();client.newCall(request);}

okHttp & 代理

Android | 彻底理解 OkHttp 代理与路由

为什么没走代理

okhttp选择proxy时,现将传入的url传换为uri,如果uri的host为空,okhttp选择直连url,放弃走代理

okhttp3.internal.connection.RouteSelector
  private fun resetNextProxy(url: HttpUrl, proxy: Proxy?) {fun selectProxies(): List<Proxy> {// If the user specifies a proxy, try that and only that.if (proxy != null) return listOf(proxy)// If the URI lacks a host (as in "http://</"), don't call the ProxySelector.val uri = url.toUri()//此处,如果host解析出来为null。放弃走设置的代理if (uri.host == null) return immutableListOf(Proxy.NO_PROXY)// Try each of the ProxySelector choices until one connection succeeds.val proxiesOrNull = address.proxySelector.select(uri)if (proxiesOrNull.isNullOrEmpty()) return immutableListOf(Proxy.NO_PROXY)return proxiesOrNull.toImmutableList()}eventListener.proxySelectStart(call, url)proxies = selectProxies()nextProxyIndex = 0eventListener.proxySelectEnd(call, url, proxies)}

 val uri = url.toUri() 函数扒到底,实际获取hostName的执行代码如下。java.net.Uri包解uri时,如果uri的host不合法,则降级设置host为null。

java.net.uri类节选代码
  private int parseAuthority(int start, int n)throws URISyntaxException{...if (serverChars) {// Might be (probably is) a server-based authority, so attempt// to parse it as such.  If the attempt fails, try to treat it// as a registry-based authority.try {//此处解析hostName,不合法的话会扔出URISyntaxException异常q = parseServer(p, n);if (q < n)failExpecting("end of authority", q);authority = substring(p, n);} catch (URISyntaxException x) {// Undo results of failed parseuserInfo = null;//host被赋值为空指针host = null;port = -1;if (requireServerAuthority) {// If we're insisting upon a server-based authority,// then just re-throw the exceptionthrow x;} else {// ex = x;q = p;}}}...return n;}

参考:JDK(java.net.URL) 中的 一个 "bug" | 唐磊的个人博客

http://www.hkea.cn/news/535655/

相关文章:

  • 怎么做网站内部链接的优化品牌营销推广代运营
  • 婚纱照网站制作搜索引擎优化搜索优化
  • 网站建设吉金手指专业13中国营销网站
  • 做销售在哪些网站注册好百度产品
  • dw做汽车网站seo排名工具提升流量
  • 网络培训学校排名奉化seo页面优化外包
  • vps除了做网站还能做什么晨阳seo服务
  • seo网站建设优化什么意思网络营销与直播电商专业就业前景
  • 工程建设企业网站网站关键词优化应该怎么做
  • 修复wordpress青岛网站优化
  • 敦煌网站做外贸怎样网页推广怎么做的
  • 南京网站建设优化今日头条普通版
  • 网站编辑的工作职能有哪些活动营销案例100例
  • 小程序招商加盟平台我是seo关键词
  • wordpress 发帖机镇江抖音seo
  • 网站建设的小结可以发外链的论坛有哪些
  • 网站正常打开速度网店营销与推广策划方案
  • 义乌 网站制作进入百度app
  • 做外围网站赌球红树林seo基础入门免费教程
  • 绿色风格网站seo排名赚钱
  • 南宁企业免费建站百度推广营销怎么做
  • 建立个人网站的成本短视频seo营销系统
  • 深圳公司名称大全网站结构优化的内容和方法
  • 安康市代驾公司上海网站关键词排名优化报价
  • 怎么在网站上建设投票统计在线培训系统app
  • 泰州网站建设哪家好网站seo的主要优化内容
  • 洛卡博网站谁做的seo权重查询
  • 东莞网络科技公司有哪些山东网站seo
  • 网站建设需要学什么网站模板购买
  • 用html做的游戏网站关键词推广效果分析