51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1411|回复: 3
打印 上一主题 下一主题

[求助] 关于在 python 中使用 requests 框架传入中文参数问题

[复制链接]
  • TA的每日心情
    无聊
    前天 09:07
  • 签到天数: 11 天

    连续签到: 2 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2017-6-27 14:38:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1. <span class="k">def</span> <span class="nf">requestsMethodForPost</span><span class="p">(</span><span class="n">param</span><span class="p">):</span>
    2.     <span class="n">url</span> <span class="o">=</span> <span class="n">upGradeUrl</span> <span class="o">+</span> <span class="s">'?'</span>
    3.     <span class="n">request</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">param</span><span class="p">)</span>
    4.     <span class="n">response</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">text</span>
    5.     <span class="k">print</span> <span class="n">response</span>
    6.     <span class="n">respDic</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">response</span><span class="p">)</span>
    7.     <span class="k">return</span> <span class="n">respDic</span>
    复制代码
    大神们,我用python做接口自动化测试,遇到这么一个问题,在用requests中post请求的时候,参数中会带有中文,然后我就直接把中文传进去了:
    1. <span class="n">params</span> <span class="o">=</span> <span class="p">{</span>
    2.     <span class="s">'from'</span><span class="p">:</span><span class="s">'internal'</span><span class="p">,</span>
    3.     <span class="s">'gps_type'</span><span class="p">:</span><span class="s">'baidu'</span><span class="p">,</span>
    4.     <span class="s">'lat'</span><span class="p">:</span><span class="s">'40.018597'</span><span class="p">,</span>
    5.     <span class="s">'lng'</span><span class="p">:</span><span class="s">'116.476326'</span><span class="p">,</span>
    6.     <span class="s">'mac'</span><span class="p">:</span><span class="s">'b4:30:52:5e:6d:61'</span><span class="p">,</span>
    7.     <span class="s">'model'</span><span class="p">:</span><span class="s">'HUAWEI-HUAWEI C8817E'</span><span class="p">,</span>
    8.     <span class="s">'name'</span><span class="p">:</span><span class="s">'先生'</span><span class="p">,</span>
    9.     <span class="s">'order_id'</span><span class="p">:</span><span class="bp">self</span><span class="o">.</span><span class="n">order_id</span><span class="p">,</span>
    10.     <span class="s">'os'</span><span class="p">:</span><span class="s">'HUAWEI19,4.4.4'</span><span class="p">,</span>
    11.     <span class="s">'phone'</span><span class="p">:</span><span class="s">'13000000090'</span><span class="p">,</span>
    12. <span class="p">}</span>
    复制代码
    然后,我就post出这个请求,但是在控制台,这个中文被直接自动转换为'\xe5\x85\x88\xe7\x94\x9f',导致这个传参一直是错误的,服务端会去校验你传入的值是否为正确编码格式,而python默认不会直接传入中文数据,这个有人遇到过吗

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2017-6-27 15:12:33 | 只看该作者
    感觉这个跟post请求没关系,看看有没有在文件开头加上#coding=utf-8
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    前天 09:07
  • 签到天数: 11 天

    连续签到: 2 天

    [LV.3]测试连长

    3#
     楼主| 发表于 2017-6-27 15:15:12 | 只看该作者
    悠悠小仙仙 发表于 2017-6-27 15:12
    感觉这个跟post请求没关系,看看有没有在文件开头加上#coding=utf-8

    还真是加了的,# -- coding: utf8 --
    但是还是不太行啊,他关键会自己转换
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-21 05:37 , Processed in 0.062835 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表