2012-06-15 47 views
0

我正在學習Python並嘗試測試一些其他web_service應用程序。從下面的代碼我試圖做的是發佈一些東西,並得到結果。當我啓動這個控制檯給我這個:我在哪裏可以得到Python 2.7中的restful_lib模塊以及如何安裝此模塊

Traceback (most recent call last): 
    File "D:\workspaces_branch1\csse120\TestPythonProject\src\UTF-Rest-Client.py", line 9, in <module> 
    import restful_lib 
ImportError: No module named restful_lib 

我認爲這是因爲我沒有這個restful_lib模塊。我可以在哪裏得到它,以及如何安裝它? 也,我想知道如果推出是好的我怎麼能得到返回的數據?

import argparse 

#additional lib, need installation (see README) 
import restful_lib 

testQueueId = 0 

# FUNCTIONS 

#generate POST content 

def postContent(): 

     xmlData = "<testQueueRequestByNewnancy>"+ \ 
     "<nancy>"+ \ 
     "<nancyTargetId>" + args.nancyTargetID + "</nancyTargetId>"+ \ 
     "<nancyUrl>" + args.nancyUrl + "</nancyUrl>"+ \ 
     "<nancyVersion>" + args.nancyVersion + "</nancyVersion>"+ \ 
     "<projectId>" + args.projectID + "</projectId>"+ \ 
     "<MumID>" + args.MumID + "</MumID>"+ \ 
     "</nancy>"+ \ 
      "<user>"+ \ 
       "<id>" + args.userID + "</id>"+ \ 
      "</user>"+ \ 
     "</testQueueRequestByNewnancy>" 

     printVerbose('xmlData =' + xmlData) 
     return xmlData 

#this function will print text only if verbose is on 

def printVerbose(text): 
    if args.verbose: 
     print(text) 


#this function will instruct scheduler through REST API call to do new tests 

def callRestApi(content): 
    printVerbose('calling REST scheduler API...') 

    #recreate complete URL 
    base_url = 'http://localhost:8080/test' 
    #ensure http:// is at the beginning 
    if (base_url[0:7].lower() != 'http://'): 
     base_url = 'http://' + base_url 
     printVerbose('url is ' + base_url) 
     conn = restful_lib.Connection(base_url, username=args.login, password=args.password) 
     headers = {'content-type':'text/json', 'accept':'text/json'} 
     conn.request_post("/bynewnancy", args={'q': 'Test'}, headers=headers) 
     #conn.request_get("/bynewnancy", args=content, returns=conn.ret, headers={'Accept': 'text/json'}) 

# MAIN 

#definition des variables 
if __name__ == '__main__': 

    #parse command line arguments 
    parser = argparse.ArgumentParser() 

    parser.add_argument('-v', dest='verbose', action='store_true') 
    parser.add_argument('-bt', '--nancyTargetID', required=True) 
    parser.add_argument('-bu', '--nancyUrl', required=True) 
    parser.add_argument('-bv', '--nancyVersion', required=False) 
    parser.add_argument('-p', '--projectID', required=True) 
    parser.add_argument('-s', '--MumID', required=True) 
    parser.add_argument('-u', '--userID', required=True) 
    #parser.add_argument('-url', '--httpURL', default='127.0.0.1') 
    #parser.add_argument('-port', '--httpPort', default='8080') 
    #parser.add_argument('-login', '--login', default='admin') 
    #parser.add_argument('-pwd', '--password', default='admin') 
    #parser.add_argument('-o', '--outputDir', default='.') 

    #args is considered as a global variable 
    args = parser.parse_args() 


    postContent = postContent() 
    callRestApi(postContent) 

    print('----==============================---- ') 

回答

0

從您的代碼中,有一行「#additional lib,需要安裝(請參閱自述文件)」。我認爲你最好看看README文件並找出如何安裝「附加庫」。

0

我認爲你可以使用Python標準庫中的urllib和urllib2來提出請求,如果你想要編碼或解碼收到或發送,你應該使用適當的編碼器或解碼器或解析器(例如,lxml,BeautifulSoup,json,simplejson,等等)取決於數據格式和您的偏好。對於入門,我認爲來自python文檔的how to fetch internet resources可能會有所幫助。你也可以從Python標準庫文檔中查看urllib和urllib2更詳細的文檔。

相關問題