2012-06-15 2 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('----==============================---- ') 

답변

6

restful_libhttp://code.google.com/p/python-rest-client에서 왔지만 마지막 변경은 4 년 전이므로이 패키지를 사용하지 않을 것을 제안합니다.

이러한 작업을 수행하려면 라이브러리 requests을 강력하게 권장합니다. XML 데이터가 포함 된 POST 요청은 다음과 같이 보입니다.

requests.post(url, data=my_xml_string) 
0

코드에는 "#additional lib, 설치 필요 (README 참조)"라는 줄이 있습니다. 난 당신이 더 README 파일을보고 "추가 lib"를 설치하는 방법을 알아낼 것 같아요.

0

난 당신이 파이썬 표준 라이브러리에서 요청을 만들기 위해 urllib 및 urllib2를 사용할 수 있다고 생각하고 인코딩 또는 디코딩을 받고 싶거나 적절한 인코더 또는 디코더 또는 파서 (예 : lxml, BeautifulSoup, json, simplejson, 등)에 따라 달라집니다. 시작하기 위해서는 파이썬 설명서의 how to fetch internet resources이 도움이 될 것이라고 생각합니다. 또한 파이썬 표준 라이브러리 문서에서 urllib 및 urllib2보다 자세한 설명서를 확인할 수 있습니다.

관련 문제