博客 2016-01-16

简介:

进入API操作的第一步就是登陆,网上资源很少,在些做个总结,转载请注明出处

http://blog.mreald.com/180


1.WEB上验证 api

地址:http://jsfiddle.net/U6qwK/6/

输入你的URL、Login_name、Password ,查看调用结果(支持本地验证哦!)


tt.PNG



2.通过Curl 命令行验证

 
curl -X POST -H 'Content-Type:application/x-www-form-urlencoded; charset=UTF-8' -d 'auth_user=itop&auth_pwd=213xxx&json_data=%7B%22operation%22%3A%22list_operations%22%7D'  "http://IP/web/webservices/rest.php?version=1.3"

或者


curl -X POST -H 'Content-Type:application/x-www-form-urlencoded; charset=UTF-8' -d 'json_data={"operation": "list_operations"}' -d  'auth_user=itop&auth_pwd=1cc0zx'
http://100.713.191.60/web/webservices/rest.php?version=1.3

3. 写python 脚本验证 

#!/usr/local/bin/python 
#coding:utf-8 
 
import urllib  
import urllib2  
import json  
  
def http_post():  
    url="http://100.173.191.60/web/webservices/rest.php?version=1.3"  
    auth ={"auth_user": "itop" , "auth_pwd": "2134xxzx"}
    opr = {"operation": "list_operations"}  
    oprjson =urllib.urlencode({'json_data': json.dumps(opr)}  )
    jdata = urllib.urlencode(auth)
    jdata = jdata+'&'+oprjson
    response = urllib.urlopen(url,jdata) 
    return response.read()         
  
rep=http_post()
print rep

执行结果:

ttt.PNG




问题:


1.必须分开用户与json_data, 比如下面就不会成功

curl -X POST -H 'Content-Type:application/x-www-form-urlencoded; charset=UTF-8' -d  '{"auth_user":"itop","auth_pwd":"211cc0zx", "json_data":{"operation":"list_operations"}}'  http://100.173.191.60/web/webservices/rest.php?version=1.3


2. curl 的-H 选项可以不要

也可以换成 -H "Content-Type: application/json" 。 浏览器默认会变成最 -H 'Content-Type:application/x-www-form-urlencoded; charset=UTF-8'



参考资料: