开发

问题是这样的:客户端用curl函数下载http://52.220.134.249/resource/10104.zip  有时候能顺利下载到资源并解压成功,但大部分情况下会提示解压失败。

跟踪了一下程序,下载过程中进度函数一直显示0, 并未下载成功,但curl_easy_perform却返回了OK,所以会走正常的解压流程,结果自然就是解压失败了。

直觉告诉我,应该还是缺少某个参数,于是试了一下:curl_easy_setopt(_curl, CURLOPT_FOLLOWLOCATION, 1L);  OK了。

用fiddler观察了一下,结果如下,重定向了。但curl_easy_perform在并未下载成功的时候返回OK也算是个BUG吧。

curl-download-res

今天在接入某邻国的支付SDK的时候,碰上了一个乱码问题。
直接表现是,从数据库后台返回给前端网页上的中文及邻国文字都变成了问号,英文没有问题。

分析了一下,我们的数据库是采用UTF-8字符集的,new String(“dataValueXXX”, “UTF-8″)应该是没有问题的,于是设置了response.setContentType(“application/json;charset=UTF-8″);一切就OK了。

其实问题的根本主要是理解下Java的String是怎么处理字符集问题的。

记录一笔,只是感慨时光流逝,当年读书的时候做些项目也碰到过类似的问题,总觉得那时候一知半解还挺折腾,时光流逝,回过头去,看看文档,再想一想,看的明白点了。

可能是苹果最近更新一些安全性的问题,我们的服务器收据验证(用的是openssl 的BIO相关接口)突然不好使了。

SSL_get_verify_result函数返回X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY错误。

https://curl.haxx.se/docs/caextract.html这里下载了一个最新的证书,替换掉SSL_CTX_load_verify_locations使用的旧证书,OK了。

最近接入某android支付系统时,对方post过来一段数据,java里用HttpServletRequest request的getParameter怎么也获取不出来参数。

重新一字一句地看了下支付文档,post里捎带说明了下post multipart/form-data格式。果不其然, request.getParameter是无法获取出来参数的。

google一下,很快解决了问题。

常见的Content-Type还有application/x-www-form-urlencoded; application/json;application/pdf等。

 

最近我们同事在移植android时,发现了一个奇怪的问题:

步骤一. 首先连接服务器A

步骤二.成功之后断开链接去连接服务器B。

问题出在步骤二上,连接上服务器B后,再也收不到任何消息。模拟器上某些情况下是可以收到消息的,某些情况下就一定是收不到消息的(这些情况也很有规律);而真机上是一定不会收到消息的。各种工具都表明客户端确实已经连接上了服务器B,服务器B也确实向客户端成功发送了数据。

后来把poll函数的超时时间设成零(之前是-1),发现就OK了。

至今仍然对应不上为什么。Mark一下。