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

起因:在一次修改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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • AFHTTPRequestOperationManager 网络传输协议UDP、TCP、Http、Socket、X...
    Carden阅读 4,403评论 0 12
  • 网络请求是android客户端很重要的部分。下面从入门级开始介绍下自己Android网络请求的实践历程。希望能给刚...
    passiontim阅读 1,398评论 0 17
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,523评论 25 708
  • 一句问候代表一颗心,话没了……心也没了……
    吴楚红阅读 217评论 0 0
  • ///屏幕宽度 #define KSCREENWIDTH [UIScreen mainScreen].bounds...
    南城OS阅读 185评论 0 0