在Python2.7中,我在哪里可以获得restful_lib模块,以及如何安装该模块

在Python2.7中,我在哪里可以获得restful_lib模块,以及如何安装该模块,python,http,rest,Python,Http,Rest,我正在学习Python并尝试测试一些rest web_服务应用程序。从下面的代码中,我想做的是发布一些东西并得到结果。当我启动此功能时,控制台会提供以下信息: Traceback (most recent call last): File "D:\workspaces_branch1\csse120\TestPythonProject\src\UTF-Rest-Client.py", line 9, in <module> import restful_lib Impor

我正在学习Python并尝试测试一些rest web_服务应用程序。从下面的代码中,我想做的是发布一些东西并得到结果。当我启动此功能时,控制台会提供以下信息:

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
回溯(最近一次呼叫最后一次):
文件“D:\workspaces\u branch1\csse120\TestPythonProject\src\UTF Rest Client.py”,第9行,在
导入restful_库
ImportError:没有名为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('----==============================---- ')
import argparse
#附加库,需要安装(参见自述)
导入restful_库
testQueueId=0
#功能
#生成帖子内容
def postContent():
xmlData=”“+\
""+ \
“+args.nancyTargetID+”\
“+args.nancyUrl+”+\
“”+args.nancyVersion+“”+\
“”+args.projectID+“”+\
“”+args.MumID+“”+\
""+ \
""+ \
“”+args.userID+“”+\
""+ \
""   
printVerbose('xmlData='+xmlData)
返回xmlData
#仅当启用“详细”时,此函数才会打印文本
def printVerbose(文本):
如果args.verbose:
打印(文本)
#此函数将通过RESTAPI调用指示调度程序执行新的测试
def CALLESTAPI(内容):
printVerbose('正在调用REST计划程序API…')
#重新创建完整的URL
基本url=http://localhost:8080/test'
#确保http://位于开头
如果(基本url[0:7].lower()!=“http://”):
基本url='http://'+基本url
printVerbose('url为'+base\u url)
conn=restful\u lib.Connection(基本url,用户名=args.login,密码=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'})
#主要
#变量的定义
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
#解析命令行参数
parser=argparse.ArgumentParser()
parser.add_参数('-v',dest='verbose',action='store_true'))
add_参数('-bt','-nancyTargetID',required=True)
add_参数('-bu','-nancyUrl',required=True)
add_参数('-bv','-nancyVersion',required=False)
add_参数('-p','-projectID',required=True)
add_参数('-s','-MumID',required=True)
add_参数('-u','-userID',required=True)
#parser.add_参数('-url','-httpURL',default='127.0.0.1')
#add_参数('-port','-httpPort',default='8080')
#parser.add_参数('-login','-login',default='admin')
#parser.add_参数('-pwd','-password',default='admin')
#parser.add_参数('-o','-outputDir',default='))
#args被视为全局变量
args=parser.parse_args()
后内容=后内容()
callRestApi(后内容)
打印('---========================================================================')

在您的代码中,有一行“#附加库,需要安装(请参阅自述)”。我认为您最好查看自述文件并了解如何安装“附加库”。

我认为您可以使用Python标准库中的urllib和urllib2发出请求,如果您希望对接收或发送的内容进行编码或解码,则应使用适当的编码器或解码器或解析器(例如,lxml、BeautifulSoup、json、simplejson等)取决于数据格式和您的首选项。对于入门,我认为python文档可能会有所帮助。您还可以从Python标准库文档中查看urllib和urllib2更详细的文档。

restful_lib来自,但它的最后一次更改是4年前,因此我不建议使用此包

我强烈推荐图书馆来完成这项任务。带有XML数据的POST请求将如下所示:

requests.post(url, data=my_xml_string)