python调用接口的方式

系统 160 0

 

python中调用API的几种方式:

- urllib2

- httplib2

- pycurl

- requests 

 

urllib2

            
              import
            
            
               urllib2, urllib
github_url 
            
            = 
            
              '
            
            
              https://api.github.com/user/repos
            
            
              '
            
            
              
password_manager 
            
            =
            
               urllib2.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(None, github_url, 
            
            
              '
            
            
              user
            
            
              '
            
            , 
            
              '
            
            
              ***
            
            
              '
            
            
              )
auth 
            
            = urllib2.HTTPBasicAuthHandler(password_manager) 
            
              #
            
            
               create an authentication handler
            
            
opener = urllib2.build_opener(auth) 
            
              #
            
            
               create an opener with the authentication handler
            
            
urllib2.install_opener(opener) 
            
              #
            
            
               install the opener... 
            
            
request = urllib2.Request(github_url, urllib.urlencode({
            
              '
            
            
              name
            
            
              '
            
            :
            
              '
            
            
              Test repo
            
            
              '
            
            , 
            
              '
            
            
              description
            
            
              '
            
            : 
            
              '
            
            
              Some test repository
            
            
              '
            
            })) 
            
              #
            
            
               Manual encoding required
            
            
handler =
            
               urllib2.urlopen(request)

            
            
              print
            
             handler.read()
          

 

2.  httplib2

            
              import
            
            
               urllib, httplib2
github_url 
            
            = 
            
              '

            
            h = httplib2.Http(
            
              "
            
            
              .cache
            
            
              "
            
            
              )
h.add_credentials(
            
            
              "
            
            
              user
            
            
              "
            
            , 
            
              "
            
            
              ******
            
            
              "
            
            , 
            
              "

            
            data = urllib.urlencode({
            
              "
            
            
              name
            
            
              "
            
            :
            
              "
            
            
              test
            
            
              "
            
            
              })
resp, content 
            
            = h.request(github_url, 
            
              "
            
            
              POST
            
            
              "
            
            
              , data)

            
            
              print
            
             content
          

 

3.  pycurl

            
              import
            
            
               pycurl, json
github_url 
            
            = 
            
              "

            
            user_pwd = 
            
              "
            
            
              user:*****
            
            
              "
            
            
              
data 
            
            = json.dumps({
            
              "
            
            
              name
            
            
              "
            
            : 
            
              "
            
            
              test_repo
            
            
              "
            
            , 
            
              "
            
            
              description
            
            
              "
            
            : 
            
              "
            
            
              Some test repo
            
            
              "
            
            
              })
c 
            
            =
            
               pycurl.Curl()
c.setopt(pycurl.URL, github_url)
c.setopt(pycurl.USERPWD, user_pwd)
c.setopt(pycurl.POST, 
            
            1
            
              )
c.setopt(pycurl.POSTFIELDS, data)
c.perform()
            
          
            
              
                
                  
                    
                      
                        
                          
                            
                              
                                
                                  
                                    
                                      
                                        
                                          
                                            
                                              
                                                
                                                  
                                                    
                                                      
                                                        
                                                          
                                                            
                                                              
                                                                
                                                                  
                                                                    
                                                                      
                                                                        
                                                                          
                                                                            
                                                                              
                                                                                
                                                                                  
                                                                                    
                                                                                      
                                                                                        
                                                                                          
                                                                                            
                                                                                              
                                                                                                
                                                                                                  
                                                                                                    
                                                                                                      
                                                                                                        
                                                                                                          
                                                                                                            
                                                                                                              
                                                                                                                
                                                                                                                  
                                                                                                                    
                                                                                                                      
                                                                                                                        
                                                                                                                          
                                                                                                                            
                                                                                                                              
                                                                                                                                
                                                                                                                                  
                                                                                                                                    
                                                                                                                                      
                                                                                                                                        
                                                                                                                                          
                                                                                                                                            
                                                                                                                                              
                                                                                                                                                
                                                                                                                                                  
                                                                                                                                                    
                                                                                                                                                      
                                                                                                                                                        
                                                                                                                                                          
                                                                                                                                                            
                                                                                                                                                              
                                                                                                                                                                 
                                                                                                                                                              
                                                                                                                                                            
                                                                                                                                                          
                                                                                                                                                        
                                                                                                                                                      
                                                                                                                                                    
                                                                                                                                                  
                                                                                                                                                
                                                                                                                                              
                                                                                                                                            
                                                                                                                                          
                                                                                                                                        
                                                                                                                                      
                                                                                                                                    
                                                                                                                                  
                                                                                                                                
                                                                                                                              
                                                                                                                            
                                                                                                                          
                                                                                                                        
                                                                                                                      
                                                                                                                    
                                                                                                                  
                                                                                                                
                                                                                                              
                                                                                                            
                                                                                                          
                                                                                                        
                                                                                                      
                                                                                                    
                                                                                                  
                                                                                                
                                                                                              
                                                                                            
                                                                                          
                                                                                        
                                                                                      
                                                                                    
                                                                                  
                                                                                
                                                                              
                                                                            
                                                                          
                                                                        
                                                                      
                                                                    
                                                                  
                                                                
                                                              
                                                            
                                                          
                                                        
                                                      
                                                    
                                                  
                                                
                                              
                                            
                                          
                                        
                                      
                                    
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          

4.  requests

            
              import
            
            
               requests, json
github_url 
            
            = 
            
              "

            
            data = json.dumps({
            
              '
            
            
              name
            
            
              '
            
            :
            
              '
            
            
              test
            
            
              '
            
            , 
            
              '
            
            
              description
            
            
              '
            
            :
            
              '
            
            
              some test repo
            
            
              '
            
            
              }) 
r 
            
            = requests.post(github_url, data, auth=(
            
              '
            
            
              user
            
            
              '
            
            , 
            
              '
            
            
              *****
            
            
              '
            
            
              ))

            
            
              print
            
             r.json
          

以上几种方式都可以调用API来执行动作,但requests这种方式代码最简洁,最清晰,建议采用。

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请请扫描上面二维码支持博主1元、2元、5元等您想捐的金额吧,狠狠点击下面给点支持吧

发表我的评论
最新评论 总共0条评论