可以使用谷歌浏览器的POSTMAN去实现界面模拟请求
函数传递参数的默认规则:
使用<code>*args</code>和<code>**kw</code>是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。
1 GET请求
#通过api获取json返回值的,一个通用函数
<code>def</code> <code>op_on_api(u, method</code><code>=</code><code>'GET'</code><code>, </code><code>*</code><code>*</code><code>kw):</code>
<code> </code><code>url </code><code>=</code> <code>u</code>
<code> </code><code>r </code><code>=</code> <code>requests.get(url, params</code><code>=</code><code>kw, timeout</code><code>=</code><code>10</code><code>)</code>
<code> </code><code>if</code> <code>r.status_code !</code><code>=</code> <code>200</code><code>:</code>
<code> </code><code>raise</code> <code>Exception(</code><code>'core api无法处理此url:'</code> <code>+</code> <code>url </code><code>+</code> <code>'请求! 返回码:'</code> <code>+</code> <code>\</code>
<code> </code><code>str</code><code>(r.status_code) </code><code>+</code> <code>\</code>
<code> </code><code>'\n\tmessage:{'</code> <code>+</code> <code>r.content </code><code>+</code> <code>'}'</code> <code>+</code> <code>\</code>
<code> </code><code>'\n\tdata:==\n'</code> <code>+</code> <code>str</code><code>(args) </code><code>+</code> <code>'\n=='</code><code>)</code>
<code> </code><code>return</code> <code>r.json()</code>
GET 请求 print r.url 你可以知道请求的具体加参数的url,这是http只是哦
u'http://youapi?key2=value2&key1=value1'
2 POST请求
<code>import</code> <code>os,json, requests </code>
<code>url </code><code>=</code> <code>"http://youapi"</code>
<code>payload</code><code>=</code><code>{</code>
<code> </code><code>"key1”:"</code><code>value1",</code>
<code> </code><code>"key2”:"</code><code>value2",</code>
<code>}</code>
<code>headers </code><code>=</code> <code>{</code><code>'content-type'</code><code>: </code><code>'application/json'</code><code>}</code>
<code>r </code><code>=</code> <code>requests.post(url, data</code><code>=</code><code>json.dumps(payload),headers</code><code>=</code><code>headers,timeout</code><code>=</code><code>10</code><code>)</code>
<code>本文转自残剑博客51CTO博客,原文链接http://blog.51cto.com/cuidehua/1783991如需转载请自行联系原作者 cuizhiliang</code>