zoukankan      html  css  js  c++  java
  • UrlConnection的代理和返回状态码的问题

    今天写了一段代码想在service里访问一个外部网站,在service的方法里写了如下代码

    System.setProperty("http.proxyType", "4");
    System.setProperty("http.proxyPort", port);
    System.setProperty("http.proxyHost", host);
    System.setProperty("http.proxySet", "true");
    
    URL url = new URL(hurl);
    HttpURLConnection con  = (HttpURLConnection)url.openConnection();
    con.setConnectTimeout(100000);
    con.connect();
    int  state = con.getResponseCode();

    结果一直报连接超时,后来将设置代理的代码移动到control层后就可以正常访问了,不知是何原因,这里做个记录。

    还有在用上面的代码测试访问中国天气网的上海天气预报的页面时,我把url加了些字符让它变成错误的url发现程序返回的状态码依然是200,而用浏览器访问则有如下情况:

    用google浏览器监测了一下发现总共发出了2个网页请求,第一个请求是我主动发起的,返回的结果是302,然后客户端又主动访问了服务器的404页面???

    如果是这样的话java代码应该是获取到302状态码的那个页面,但是实际实际读取网页的流后发现是后面这个404页面,这是一个很奇怪的问题。

    如果是服务器端的跳转那我浏览器就不应该出现2个请求了哈....  无解啊

  • 相关阅读:
    随机验证码生成
    python之map和filter
    Json学习笔记
    动态规划求区间最值问题RMQ(Range Minimum/Maximum Query)
    积水问题
    5亿个数找中位数
    Linux下进程间通信:命名管道mkfifo
    Trie树总结
    树的公共祖先问题LCA
    类文件结构
  • 原文地址:https://www.cnblogs.com/yangzhilong/p/3781501.html
Copyright © 2011-2022 走看看