如何在urllib中传递文件夹路径休息后调用

时间:2018-05-15 18:30:10

标签: python-3.x rest post urllib

进行如下调查:

http://localhost:8086/service/records/bulkimport?overwrite=true&classroom=grade1&dir=C:\用户\ TEMP \ classroomRecords \ grade1

尝试使用urllib在python3.6中实现如下:

from urllib.request import urlopen, URLError, Request
from urllib.parse import urlencode

loadRecordsRestCall = 'http://localhost:8086/service/records/bulkimport'
values = {'overwrite' : 'true',
      'classroom' :  'grade1',
      'dir' : 'C:\\Users\\temp\\classroomRecords\\grade1'}
data = urlencode(values)
data = data.encode('ascii')
req = Request(self.loadRecordsRestCall, data)
with urlopen(req) as loadRecordsRestCall:
    print("Status: %s" % loadRecordsResponse.getcode()) 
    print("Response: %s" % loadRecordsResponse.read()) 

但每次显示错误代码500,在网上做过研究,不想用户外部库,如果只是使用urllib,如何让它工作。

以下是错误消息,有人知道这里有什么问题:     Traceback(最近一次调用最后一次):     文件"",第1行,in     文件" C:\ Program Files \ Python36 \ lib \ urllib \ request.py",第223行,在urlopen中       return opener.open(url,data,timeout)     文件" C:\ Program Files \ Python36 \ lib \ urllib \ request.py",第532行,打开       response = meth(req,response)     文件" C:\ Program Files \ Python36 \ lib \ urllib \ request.py",第642行,中
         HTTP_RESPONSE     ' http',请求,响应,代码,消息,hdrs)     文件" C:\ Program Files \ Python36 \ lib \ urllib \ request.py",第570行,出错         return self._call_chain(* args)     文件" C:\ Program Files \ Python36 \ lib \ urllib \ request.py",第504行,在_中        call_chain     result = func(* args)     文件" C:\ Program Files \ Python36 \ lib \ urllib \ request.py",第650行,in        http_error_default     引发HTTPError(req.full_url,code,msg,hdrs,fp)     urllib.error.HTTPError:HTTP错误500:请求失败。

1 个答案:

答案 0 :(得分:0)

这已得到解决,结果证明服务端API需要查询参数。所以我使用了格式化的url字符串来进行调用。