使用Python上传adobeaem将curl命令转换为请求时出现问题

2024-04-28 20:06:48 发布

您现在位置:Python中文网/ 问答频道 /正文

正在尝试将this curl命令转换为python。你知道吗

curl -u admin:xxxxxxxx -F file=@"package.zip" -F name="package.zip" -F force=true -F install=true http://host:port/crx/packmgr/service.jsp

尝试使用这个,得到一个200成功代码,但打印响应文本和审查服务器显示上传没有工作。有人能告诉我我做错了什么吗?你知道吗

    import requests

    files = {
        'file': ('package.zip', open('package.zip', 'rb')),
        'name': (None, 'package.zip'),
        'force': (None, 'true'),
        'install': (None, 'true'),
    }

    response = requests.post('http://host:port/crx/packmgr/service.jsp', files=files, auth=('admin', 'xxxxxxxx'))


    print(response.headers)
    print(response.text)

Tags: installnamenonetruehttphostpackageadmin
2条回答

我认为您缺少导入基本身份验证

from requests.auth import HTTPBasicAuth

response = requests.post('http://host:port/crx/packmgr/service.jsp', 
files=files, auth=HTTPBasicAuth('admin', '****'))

更新:

 import requests
 from requests.auth import HTTPBasicAuth
 url = 'http://localhost:4502/crx/packmgr/service.jsp'
 files = { 'file': ('mypackage.zip', 
 open('/Users/zospakir/Projects/mypackage.zip', 'rb'), 
 'application/zip')}
 data = dict(name='mypackage.zip', force='true',install='true')
 response = requests.post(url, files=files, data=data, auth=('admin', 
 '***'))

我想出来了。你知道吗

问题在于如何解析源文件。你知道吗

   datafile=fullfile + "/" + filename
   url = "http://{}:{}/crx/packmgr/service.jsp".format(server,port)
   form_data = dict(
        file=(filename, open(datafile, 'rb'), 'application/zip', dict()),
        name=package.rstrip('.zip'),
        strict=True,
        force=(None, 'true'),
        install=(None, 'true')
   )
   resp = requests.post(url, auth=('admin', passwd), files=form_data)   
   if resp.status_code == 200:
       print(resp.headers)
       print(resp.text)
       print('Success!...  Response code 200')
       status = "Upload of " + package + " to " + url + "successful"
       package_location=pkg_group(resp.text)
       package_path=package_location + "/" + package
       #mailer.send(status,resp.text)
   else:
       print(resp.headers)
       print(resp.text)
       status='Upload of ' + package +  'Error detected!'
       sys.exit(1)

相关问题 更多 >