同样的参数,为什么网络请求回来报错呢

起因:在一次修改https过程中,QQ健康要同步的网络请求代码太旧了,报错,于是我就负责把它的网络请求改了,改成我们统一的网络请求 StringZIPRequest 后来由于什么原因没测试,最后最后发现问题了.......

看了一中午没调试出什么问题,因为包括参数名称,参数类型都是完全一样的,为什么ios请求成功,我的就不行呢??

我就改了一个网络请求方式啊,其它也没变啊,为什么就是不行呢。

大米跟我说,是因为编码的问题,Content-Type 的值设置为 Content-Type application/x-www-form-urlencoded 把这个设置上就好了。

但是我们统一的这个请求不太好改,要改都改了,所以索性 一不做二不休,改了,重新换一种请求网络 HttpUrlConnection ,又重新试了一次,好了。部分代码如下:

try {
            urlConn.setRequestMethod("POST");
        
        urlConn.setUseCaches(false);  
        // 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的    
        urlConn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");    
        // 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,  
        // 要注意的是connection.getOutputStream会隐含的进行connect。    
        urlConn.connect();  
        //DataOutputStream流  
        DataOutputStream out = new DataOutputStream(urlConn.getOutputStream());  
        //要上传的参数  
        String content = "oauth_consumer_key=" + URLEncoder.encode(qqInfoBean.getOauth_consumer_key(), "UTF_8")+
                "&access_token="+URLEncoder.encode(qqInfoBean.getAccess_token(), "UTF_8")+
                ;   
        //将要上传的内容写入流中  
        out.writeBytes(content);     
        //刷新、关闭  
        out.flush();  
        out.close(); 
        
        } catch (Exception e) {
            e.printStackTrace();
        } 

最后问题解决,写个笔记做个记录,记录自己在Android路上遇到的各种奇葩坑。
奉上参考文章地址:http://blog.csdn.net/nrs12345/article/details/18358865

你可能感兴趣的:(同样的参数,为什么网络请求回来报错呢)