我有一个restput请求,用Django REST框架上传一个文件。每当我使用Postman REST客户端上载文件时,它都可以正常工作:
但当我试图用我的代码来做这些时:
import requests
API_URL = "http://123.316.118.92:8888/api/"
API_TOKEN = "1682b28041de357d81ea81db6a228c823ad52967"
URL = API_URL + 'configuration/configlet/31'
#files = {
files = {'file': open('configlet.txt','rb')}
print URL
print "Update Url ==-------------------"
headers = {'Content-Type' : 'text/plain','Authorization':API_TOKEN}
resp = requests.put(URL,files=files,headers = headers)
print resp.text
print resp.status_code
服务器端出现错误:
^{pr2}$我将文件作为密钥传递,但仍有上述错误,请让我知道我在这里可能做错了什么。在
这就是我的Django服务器视图的外观
def put(self, request,id,format=None):
configlet = self.get_object(id)
configlet.config_path.delete(save=False)
file_obj = request.FILES['file']
configlet.config_path = file_obj
file_content = file_obj.read()
params = parse_file(file_content)
configlet.parameters = json.dumps(params)
logger.debug("File content: "+str(file_content))
configlet.save()
要使其工作,您需要发送一个
multipart/form-data
主体。您应该而不是在这里将整个请求的内容类型设置为text/plain
;只设置一部分的mime类型:这将把请求的
Content-Type
头作为一个整体设置到库中,并使用files
将其设置为multipart/form-data
。在相关问题 更多 >
编程相关推荐