HttpURLConnection请求https报Connection reset 5C

private String getAllFolderInfo(String sid) {
HttpURLConnection connection = null;
BufferedReader bufferedReader = null;
StringBuffer result = new StringBuffer();
try {
URL url = new URL("https://XX.XX.XX.XX/coremail/s?func=mbox:getAllFolders&sid=" + sid);
if (url.getProtocol().toLowerCase().equals("https")) {
HttpsURLConnection https = (HttpsURLConnection) url.openConnection();
https.setHostnameVerifier(DO_NOT_VERIFY);
connection = https;
} else {
connection = (HttpURLConnection) url.openConnection();
}
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
connection.setRequestProperty("Content-Type", "application/xml");
// 发送POST请求必须设置如下两行
connection.setDoOutput(true);
connection.setDoInput(true);
connection.connect();
connection.setConnectTimeout(5000);
connection.setReadTimeout(10000);
// 获取URLConnection对象对应的输出流
DataOutputStream ds = null;
try
{
ds = new DataOutputStream(connection.getOutputStream());
String postBody = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>true";

        ds.write(postBody.toString().getBytes("UTF-8"));
      } catch (Exception e) {
        e.printStackTrace();
      } finally {
        ds.flush();
        ds.close();
      }
      bufferedReader = new BufferedReader(
        new InputStreamReader(connection.getInputStream(), "utf-8"));
      String temp = null;
      while ((temp = bufferedReader.readLine()) != null)
        result.append(temp);
    }
    catch (MalformedURLException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (bufferedReader != null) {
        try {
          bufferedReader.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      connection.disconnect();
    }
    System.out.println("result==="+result.toString());
    return result.toString();
  }
  private final static HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {
        public boolean verify(String hostname, SSLSession session) {
            return true;
        }
    };

    private static void trustAllHosts() {
        // Create a trust manager that does not validate certificate chains
        TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return new java.security.cert.X509Certificate[]{};
            }

            public void checkClientTrusted(X509Certificate[] chain, String authType) {
            }

            public void checkServerTrusted(X509Certificate[] chain, String authType) {
            }
        }};
        // Install the all-trusting trust manager
        try {
            SSLContext sc = SSLContext.getInstance("TLS");
            sc.init(null, trustAllCerts, new java.security.SecureRandom());
            HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
使用  connection.connect();手动开启,或者ds = new DataOutputStream(connection.getOutputStream());自动开启都会报Connection reset。。。tomcat服务器下正常,weblogic就报错

图片说明

3个回答

链接上面出现了问题,看看网络怎么样

xiaotianna110
出色的本色 tomcat环境下是可以通的,放到weblogic下就坏了
接近 2 年之前 回复

weblogic是不是有侦听443的端口

xiaotianna110
出色的本色 如果是,该怎么处理
接近 2 年之前 回复

最终,还是通过自己的测试解决了问题。HttpURLConnection 访问https对jdk版本有要求,经过多轮全方位测试,使用了1.7.80的jdk版本,解决了问题

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
HttpURLConnection无法调用openConnection方法

如图: ![图片说明](https://img-ask.csdn.net/upload/201704/05/1491402972_88540.png) 调试的时候出现下面的错误: ![图片说明](https://img-ask.csdn.net/upload/201704/05/1491402983_26571.png) 想知道为什么,有什么解决办法吗? (用的IDEA) 谢谢各位!

java.net.SocketException: Connection reset 解決方式

public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Test test = new Test(); test.myRun(); } private static void myRun(){ List<Map<String, Object>> etfList= getETFName_db(); //getETFDebtInfo(etfList,"ETFBasicsINfo",1);//添加ETF基础数据(Name ,类型,基金家族) 已經添加完成 String url=null; List<Map<String, Object>> etfErrorList=new ArrayList<Map<String ,Object>>(); int count=0;// for(int i=0;i<etfList.size();i++){ int num=0; String chart=etfList.get(i).get("Ticker").toString(); //https://query1.finance.yahoo.com/v7/finance/chart/"+chart+"?range=10y&interval=1d&indicators=quote" //+ "&includeTimestamps=true&includePrePost=false&corsDomain=finance.yahoo.com" try { url="https://query1.finance.yahoo.com/v7/finance/chart/"+chart+"?range=10y&interval=1d&indicators=quote" + "&includeTimestamps=true&includePrePost=false&corsDomain=finance.yahoo.com"; while(Run(url)==0){ num++; if(num<3){ continue; }else { Map<String, Object>ETFMap =new HashMap<>(); ETFMap.put("ETF", chart); etfErrorList.add(ETFMap); break; } } } catch (Exception e) { // TODO: handle exception if(num<3){ count++; } System.out.println(chart+"出錯"); } } getETFDebtInfo(etfErrorList,"ETFBasicsINfo",2); if(etfErrorList.size()>0){ System.out.println("添加完成!共"+count+"条!"); System.out.println("失败"+etfErrorList.size()+"条!"); System.out.println("失败信息:"+etfErrorList); }else{ System.out.println("全部添加完成!共"+count+"条!"); } } @SuppressWarnings("unchecked") private static int Run(String url){ Map<String,Object> htmlMap=new HashMap<>();//1 Map<String,Object> chartMap=new HashMap<>();//2 List<Map<String, Object>> mapList=new ArrayList<Map<String,Object>>();//3 Map<String,Object>map4=new HashMap<>();//4 cUrl c=new cUrl(); String html=null; try { html=c.httpGet(url);//得到一个html 页面元素 if(html == null || html.length() < 10){ return 0; } } catch (Exception e) { // TODO: handle exception } htmlMap= (Map<String, Object>) JSONObject.parse(html);//把该页面元素转成JSON对象 存如Map for (String charkey : htmlMap.keySet()){ chartMap=(Map<String, Object>) htmlMap.get(charkey); for (String chartkey : chartMap.keySet()) {//2 if(chartMap.get(chartkey)!=null){ mapList=(List<Map<String, Object>>) chartMap.get(chartkey); map4=(Map<String, Object>) mapList.get(0).get("meta"); getETFDebtInfo(mapList,map4.get("symbol").toString(),0); } } } return 1; } private static void getETFDebtInfo(List<Map<String, Object>> getETFDebtInfoList,String ETFName,int num) { String RobomongDBName=null; switch (num) { case 0: RobomongDBName="ETFDebtInfo"; break; case 1: RobomongDBName="ETFBasicsINfo"; break; case 2: RobomongDBName="ETFErrorLog"; break; default: break; } List<Map<String, Object>> mfo = getETFDebtInfoList; Map<String, Object> kMap = new HashMap<>(); kMap.put(ETFName, mfo); String kJson = JSON.toJSONString(kMap); MGDB mgdb = new MGDB(); mgdb.DBEnd(); mgdb.SetCollection(RobomongDBName); Map<String, Object> wMap = new HashMap<>(); Map<String, Object> eMap = new HashMap<>(); eMap.put(mgdb.exists, 1); wMap.put(RobomongDBName, eMap); String wjson = JSON.toJSONString(wMap); mgdb.JsonWhere(wjson); mgdb.Delete(); mgdb.Insert(kJson); mgdb.Close(); System.out.println("添加"+RobomongDBName+"数据 ok!"); }

HttpURLConnection 发送post请求 400错误

![图片说明](https://img-ask.csdn.net/upload/201705/31/1496232402_89595.png) 2222222222 ![图片说明](https://img-ask.csdn.net/upload/201705/31/1496232412_356799.png) 2222222222 ![图片说明](https://img-ask.csdn.net/upload/201705/31/1496232417_608399.png) 2222222222 如图3所示,命名响应成功了。返回了正常的数据,但是后面却跟着 400错误。 而且这个错误时有时无 2222222222 ![图片说明](https://img-ask.csdn.net/upload/201705/31/1496232605_669237.png)

httpurlconnection post请求中如何能保证请求头与正文是一次发送

httpurlconnection post请求中正文是在获取inputstream的时候发送,那请求头是不是在outputsream关闭的时候发送呢,如何能保证他两是一起发送?

HttpURLConnection重复提交请求

各位大神 我就剩下50 GB 了 求解 。 HttpURLConnection 请求数据超时了以后,会重复提交一下上次提交的网络数据! 不知道为什么 球大神帮忙解决。代码如图:![图片说明](https://img-ask.csdn.net/upload/201512/28/1451289131_154106.png)

麻烦大神帮忙看下 java.net.SocketException: Connection reset 不是经常出现间歇性出现

错误代码 java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:210) at java.net.SocketInputStream.read(SocketInputStream.java:141) at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) at java.io.BufferedInputStream.read(BufferedInputStream.java:265) at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78) at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106) at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116) at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973) at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735) at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098) at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398) at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323) at com.example.madame.service.JokeService.jokeGet(JokeService.java:86) at com.example.madame.controller.OneSentencePerDayController.test35(OneSentencePerDayController.java:105) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908) at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:109) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:109) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:109) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:109) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) 我的代码 public String joke() { try { // String urlTypeName = java.net.URLEncoder.encode(city1, "utf-8"); URL url = new URL("xxx"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { //结果码=200 InputStream is = conn.getInputStream(); //内存流 , ByteArrayOutputStream boas = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = -1; while (is.available() != 0&&(len = is.read(buffer)) != -1) { boas.write(buffer, 0, len); } System.out.println("GET请求获取的数据:" + boas.toString()); JSONObject jsonObject = JSONObject.fromObject(boas.toString()); String reason = String.valueOf(jsonObject.get("reason")); if ("success".equals(reason)) { Object result = jsonObject.get("result"); JSONArray jsonArray = JSONArray.fromObject(result.toString()); int count = 0; String joke = ""; if (jsonArray.size() > 0) { for (int i = 0; i < jsonArray.size(); i++) { String content = String.valueOf(JSONObject.fromObject(jsonArray.get(i)).get("content")); count += 1; joke += " <tr align=\"center\" style=\"text-indent:2em;\">\n" + " <td >" + count + "." + content + "</td>\n" + " </tr>"; if (count == 3) { break; } } boas.close(); is.close(); return joke; } } } } catch (IOException e) { e.printStackTrace(); } return null; }

Android使用HttpURLconnection时getInputStream出现超时

代码如下: public void getRequest(final String urlPath){ new Thread(){ public void run(){ try{ URL url = new URL(urlPath); HttpURLConnection con = (HttpURLConnection)url.openConnection(); con.setReadTimeout(5*1000); con.setConnectTimeout(5*1000); con.setDoInput(true); con.setDoOutput(true); con.setRequestMethod("POST"); con.setUseCaches(false); con.setRequestProperty("Content-type","application/x-www-form-urlencoded"); con.setRequestProperty("Content-type",String.valueOf(data.length)); OutputStream outputStream = con.getOutputStream(); outputStream.write(data); con.connect(); outputStream.flush(); outputStream.close(); con.getInputStream(); int response = con.getResponseCode(); if(response ==HttpURLConnection.HTTP_OK){ Message false_message = new Message(); false_message.what = 100; handler.sendMessage(false_message); con.disconnect(); }else { Message false_message = new Message(); false_message.what = 101; handler.sendMessage(false_message); con.disconnect(); } }catch (Exception e){ e.printStackTrace(); Message false_message = new Message(); false_message.what = 102; handler.sendMessage(false_message); } } }.start(); } 在 con.getInputStream()时会出现Java.net.SocketTimeoutException 但是实际上在服务器上是已经收到了我发送的信息 所以这是为什么呢???

android HttpURLConnection Post方式设置参数,访问服务器

android HttpURLConnection Post方式设置参数,访问服务器 怎么写,

HttpURLConnection 带 cookie 请求 ?

url = "http://www.baidu.com"; URL realUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection(); String cookieval = conn.getHeaderField("set-cookie"); String sessionid = null; if(cookieval != null){ sessionid = cookieval.substring(0, cookieval.indexOf(";")); conn.addRequestProperty("Cookie", sessionid); } conn.setRequestProperty("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); conn.setRequestProperty("Accept-Encoding","gzip, deflate, sdch"); conn.setRequestProperty("Accept-Language","zh-CN,zh;q=0.8"); conn.setRequestProperty("Cache-Control","max-age=0"); conn.setRequestProperty("Connection","keep-alive"); conn.setRequestProperty("Upgrade-Insecure-Requests","1"); conn.setRequestProperty("Cookie",sessionid); conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"); conn.connect(); int code = conn.getResponseCode(); 这样抛异常:Exception in thread "main" java.lang.IllegalStateException: Already connected at sun.net.www.protocol.http.HttpURLConnection.addRequestProperty(HttpURLConnection.java:2256) at com.huruxi.practice.http.HttpURLTest.getWebData(HttpURLTest.java:26) at com.huruxi.practice.http.HttpURLTest.main(HttpURLTest.java:87) 通过HttpURLConnection 访问网站,网站需要带cookie,我这样先获取,在设置cookie有异常,如果在浏览器中访问网站拷贝cookie来执行是可以的 技术较弱,大牛海涵,

android 原生HttpUrlConnection发送POST请求报502错误

![![图片说明](https://img-ask.csdn.net/upload/201801/16/1516085151_731208.png)图片说明](https://img-ask.csdn.net/upload/201801/16/1516085135_757331.png)

HttpURLConnection使用get请求要怎么提交请求头(Authorization)呢

URL u = null; HttpURLConnection con = null; try { u = new URL(“http://192.168.1.102/api/User/Page?pageIndex=1&pageSize=10"); con = (HttpURLConnection) u.openConnection(); con.setRequestMethod("GET"); con.setDoOutput(true); con.setDoInput(true); con.setUseCaches(false); // con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); con.addRequestProperty("Authorization", "Bearer NIOWysca2x78ARBsaPluv9eIcGvshRKX04pTirGAhBp4_pjTGhehhTkUO1ZTp8mVPjL9bFSREunNkjC2Gt7Pd4KofhxF9npxI3hcv4e2rzGyidt93XAQK0sIZGfJA413jkenXGqR1Mv69YQrm4M4RC0enrCUr6FKKxZ95qQ3vvlIpiBq49g9kqQAt_5iR3m5Tl_Vmp1AKrD5fVIqDlLdpg"); OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream(), "UTF-8"); osw.write(""); osw.close(); } catch (Exception e) { e.printStackTrace(); } 无法访问,是不是头文件配置有误?

使用httpurlconnection请求服务器得不到xml数据

我已知一个服务器开放的访问地址查询不同城市的天气,城市名称作为url地址的一个参数,用浏览器访问可以得到相应城市的xml格式的天气信息,但是我在手机中使用HttpURLConnection请求服务器得到的只是天气信息的xml完整结构而没有数据,,我已经对中文城市名进行了utf8编码,服务器返回的xml中也含有该城市的名称,就是没有天气数据,请问各位这是为什么? 其中,city_name已经进行了utf8编码,address是url的前一段 String request = address+city_name; url = new URL(request); conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); read = conn.getInputStream(); bfr = new BufferedReader(new InputStreamReader(read)); while((line=bfr.readLine())!=null){ sb.append(line); } String result = sb.toString();

HttpURLConnection 重复发送请求参数的问题

new Thread() { @Override public void run() { Looper.prepare(); Date date = new Date(); String timeNow = YYMMdd.timestr(date); String mystr = MD5utils.MD5(timeNow); String urlPath = "http://" + address + "/service/AfarPosService.svc/Sale/salelist/sa/" + mystr; URL url; try { url = new URL(urlPath); JSONObject ClientKey = new JSONObject(); JSONArray jsonArray = new JSONArray(liushuis); ClientKey.put("data", jsonArray); ClientKey.put("c_cardtype", c_cardtype); ClientKey.put("message", ""); ClientKey.put("content", ""); contentLiuShui = String.valueOf(ClientKey); Log.e("发送实时流水contentLiuShui", contentLiuShui + ""); conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(20000); conn.setReadTimeout(20000); conn.setChunkedStreamingMode(0); conn.setDoInput(true);// 设置是否从httpUrlConnection读入,默认情况下是true; conn.setDoOutput(true);//设置是否向httpUrlConnection输出,post请求,参数要放在http正文内,因此需要设为true, 默认情况下是false; conn.setUseCaches(false);//设置是否用缓存 Post 请求不能使用缓存 ,设置为false conn.setRequestMethod("POST");//设定请求的方法为"POST",默认是GET conn.setRequestProperty("ser-Agent", "Fiddler"); conn.setRequestProperty("Content-Type", "application/json"); OutputStream os = conn.getOutputStream();//此处getOutputStream会隐含的进行comm.connect(); Log.e("os", os + ""); os.write(contentLiuShui.getBytes()); os.close(); int code = conn.getResponseCode(); Log.e("发送实时流水code", code + ""); if (code == 200) { InputStream is = conn.getInputStream(); String json = NetUtils.readString(is); Log.e("返回实时流水json", json + ""); com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(json); String panduan = (String) jsonObject.get("message"); String yichang = (String) jsonObject.get("content"); if (panduan.equals("0")) { } else if (panduan.equals("4") || panduan.equals("7")) { } else { Toast.makeText(PaymentMoneyActivity1.this, yichang, Toast.LENGTH_LONG).show(); } } else { Toast.makeText(PaymentMoneyActivity1.this, "与服务器连接失败", Toast.LENGTH_SHORT).show(); } } catch (Exception e) { Toast.makeText(PaymentMoneyActivity1.this, "网络连接超时,请检查网络", Toast.LENGTH_SHORT).show(); e.printStackTrace(); } finally { Toast.makeText(PaymentMoneyActivity1.this, "网络连接超时,zouazheloosg", Toast.LENGTH_SHORT).show(); if (conn != null) { conn.disconnect(); Log.e("断开了", "断开了耶!"); } } Looper.loop(); } }.start(); ``` ``` 现存问题: 第一次进行网络请求的时候(时间A,数据data1),如果网络不好超时了,再次接着请求该接口(时间B,数据data2),服务器会收到两次请求的数据:时间A的data1和时间B的data2! 注意:如果多次超时请求,最终后台服务器会接收到多次不同的data! 本人技术小白,还请大神能够指点出错误和解决的办法! 求加QQ在线讨论,在线等解救QQ:379077640

HttpUrlConnection模拟ajax请求

最近遇到一个问题,有请各位大虾帮个忙,解答一下,问题如下: 对方系统提供了一个api,我通过ajax请求json数据类型能请求到,但是通过httpUrlConnection就call不到结果,并且已经设置了Content-Encoding和Content-Type,最后readline读出来始终是空,求解决方案,是不是漏设了什么属性? 原始http请求头信息如下: Cache-Control no-cache Connection keep-alive Content-Encoding gzip Content-Length 858 Content-Type application/json;charset=UTF-8 Date Tue, 16 Aug 2016 07:18:45 GMT Expires Wed, 31 Dec 1969 23:59:59 GMT Pragma No-cache Server nginx/1.10.1 access-control-allow-head... Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With access-control-allow-orig... * renderer webkit viewport width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0 user-scalable=no 原始头信息 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding gzip, deflate Accept-Language zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 Connection keep-alive Host 210.73.192.83 Upgrade-Insecure-Requests 1 User-Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0 java代码如下: URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); // optional default is GET con.setRequestMethod("GET"); //add request header con.setRequestProperty("User-Agent", USER_AGENT); con.setRequestProperty("Content-Encoding", "gzip"); con.setRequestProperty("Content-Type", "application/json"); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); Map<String, List<String>> header = con.getHeaderFields(); for (Map.Entry<String, List<String>> entry : header.entrySet()) { String key = entry.getKey() != null ? entry.getKey() + ":" : ""; System.out.println(key + entry.getValue()); } while ((inputLine = in.readLine()) != null) { response.append(inputLine); }

HttpURLConnection的301永久重定向问题,希望大神帮忙一下

# 源码 -- 爬取工具类 public static String getHtmlUrl(String address){ //http://www.cnblogs.com/fangg/p/5886233.html 打开链接 HttpURLConnection conn = null; //http://www.cnblogs.com/blackiesong/p/6182038.html 通过网络或远程链接达到目的 URL url = null; //输入流 InputStream in = null; //缓冲流 BufferedReader reader = null; //存储和操作字符串 StringBuffer stringBuffer = null; try { //代表一个绝对地址,URL对象直接指向这个资源 url = new URL(address); //打开链接 conn = (HttpURLConnection) url.openConnection(); //设置链接超时时间 conn.setConnectTimeout(5000); //设置读取超时时间 conn.setReadTimeout(5000); //设置是否向httpUrlConnection输出,post请求,参数要放置在http正文中,需要设置为true,默认为false //conn.setDoInput(true); //解决301永久重定向问题 conn.setInstanceFollowRedirects(false); //建立连接,并不会向服务器传送数据 conn.connect(); in = conn.getInputStream(); reader = new BufferedReader(new InputStreamReader(in)); stringBuffer = new StringBuffer(); String line = null; while((line = reader.readLine()) != null){ stringBuffer.append(line); } } catch (Exception e) { e.printStackTrace(); } finally{ conn.disconnect(); try { in.close(); reader.close(); } catch (Exception e) { e.printStackTrace(); } } return stringBuffer.toString(); }

HttpURLConnection测试程序崩溃

今天照《第一行代码》第10章敲出来的HttpURLConnection测试程序运行之后一直闪退,求大神指点,小白拜谢! 错误日志如下: ![图片说明](https://img-ask.csdn.net/upload/201602/05/1454676432_247741.png) ![图片说明](https://img-ask.csdn.net/upload/201602/05/1454676448_254545.png) 代码如下: ``` package com.example.networktest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import android.app.Activity; import android.app.ActionBar; import android.app.AlertDialog.Builder; import android.app.Fragment; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import android.os.Build; public class MainActivity extends Activity implements OnClickListener { public static final int SHOW_RESPONSE = 0; private TextView textView; private Button button; private Handler handler = new Handler() { public void handlerMessage(Message msg) { switch (msg.what) { case SHOW_RESPONSE: String response = (String) msg.obj; // 更新UI操作 textView.setText(response); break; default: break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_main); textView = (TextView) findViewById(R.id.sendRequest); button = (Button) findViewById(R.id.responseText); button.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub if (v.getId() == R.id.sendRequest) { sendRequsetWithHttpURLConnection(); } } private void sendRequsetWithHttpURLConnection() { // 开启线程来发起网络请求 new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub HttpURLConnection connection = null; try { URL url = new URL("http://www.baidu.com"); connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(8000); connection.setReadTimeout(8000); InputStream in = connection.getInputStream(); // 对获取到的输入流进行解析 BufferedReader reader = new BufferedReader( new InputStreamReader(in)); StringBuilder response = new StringBuilder(); String line ; while ((line=reader.readLine()) != null) { response.append(line); } // 发送返回结果 Message message = new Message(); message.what = SHOW_RESPONSE; message.obj = response.toString(); handler.sendMessage(message); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (connection != null) { connection.disconnect(); } } } }).start(); } } ```

求救啊安卓httpurlconnection.getinputstream报空指针异常

public Bitmap getBitmapFromURL(String urlString){ Bitmap bitmap ; InputStream is=null ; try { URL url=new URL(urlString); HttpURLConnection connection=(HttpURLConnection) url.openConnection(); is=new BufferedInputStream(connection.getInputStream()); bitmap=BitmapFactory.decodeStream(is); connection.disconnect(); return bitmap; } catch (java.io.IOException e) { e.printStackTrace(); }finally{ try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return null; } 这个类出了问题,问题出现在connection.getInputStream()

关于CloseableHttpClient 和 HttpURLConnection 中的 cookie问题

我在请求需要登录的链接时发生的问题。。。 1、**用CloseableHttpClient** 请求 返回: **{"error_no":102,"error_msg":"user not login","result":null}...** 2、**用HttpURLConnection** 请求 返回: **resp >>> {"error_no":40004,"error_msg":"\u9886\u53d6\u5931\u...** 说明已经登录了,是我想要的结果 同样的url,同样的cookie,为什么用CloseableHttpClient是未登录? 下面分别是两个请求方法的代码: ![图片说明](https://img-ask.csdn.net/upload/201811/08/1541663289_6808.png) ![图片说明](https://img-ask.csdn.net/upload/201811/08/1541663300_816788.png)

真机测试HttpURLConnection获取不到数据 用HttpClinet又可以 5.0系统

URL url=new URL("http://www.baidu.com"); connection =(HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); InputStream in =connection.getInputStream(); HttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet("http://www.baidu.com"); HttpResponse response =client.execute(get); HttpEntity entity =response.getEntity(); InputStream in = entity.getContent();

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Linux 会成为主流桌面操作系统吗?

整理 |屠敏出品 | CSDN(ID:CSDNnews)2020 年 1 月 14 日,微软正式停止了 Windows 7 系统的扩展支持,这意味着服役十年的 Windows 7,属于...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

学习总结之HTML5剑指前端(建议收藏,图文并茂)

前言学习《HTML5与CSS3权威指南》这本书很不错,学完之后我颇有感触,觉得web的世界开明了许多。这本书是需要有一定基础的web前端开发工程师。这本书主要学习HTML5和css3,看...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

新一代神器STM32CubeMonitor介绍、下载、安装和使用教程

关注、星标公众号,不错过精彩内容作者:黄工公众号:strongerHuang最近ST官网悄悄新上线了一款比较强大的工具:STM32CubeMonitor V1.0.0。经过我研究和使用之...

记一次腾讯面试,我挂在了最熟悉不过的队列上……

腾讯后台面试,面试官问:如何自己实现队列?

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

冒泡排序动画(基于python pygame实现)

本项目效果初始截图如下 动画见本人b站投稿:https://www.bilibili.com/video/av95491382 本项目对应github地址:https://github.com/BigShuang python版本:3.6,pygame版本:1.9.3。(python版本一致应该就没什么问题) 样例gif如下 ======================= 大爽歌作,mad

Redis核心原理与应用实践

Redis核心原理与应用实践 在很多场景下都会使用Redis,但是到了深层次的时候就了解的不是那么深刻,以至于在面试的时候经常会遇到卡壳的现象,学习知识要做到系统和深入,不要把Redis想象的过于复杂,和Mysql一样,是个读取数据的软件。 有一个理解是Redis是key value缓存服务器,更多的优点在于对value的操作更加丰富。 安装 yum install redis #yum安装 b...

现代的 “Hello, World”,可不仅仅是几行代码而已

作者 |Charles R. Martin译者 | 弯月,责编 | 夕颜头图 |付费下载自视觉中国出品 | CSDN(ID:CSDNnews)新手...

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

程序员毕业去大公司好还是小公司好?

虽然大公司并不是人人都能进,但我仍建议还未毕业的同学,尽力地通过校招向大公司挤,但凡挤进去,你这一生会容易很多。 大公司哪里好?没能进大公司怎么办?答案都在这里了,记得帮我点赞哦。 目录: 技术氛围 内部晋升与跳槽 啥也没学会,公司倒闭了? 不同的人脉圈,注定会有不同的结果 没能去大厂怎么办? 一、技术氛围 纵观整个程序员技术领域,哪个在行业有所名气的大牛,不是在大厂? 而且众所...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

立即提问
相关内容推荐