Replicate Curl command with Python Requests -


what syntax transforming following python requests call?

curl -f file=@/your/data.csv http://host/ingest 

i have tried following:

 files = {'file': ('injestable_file', open(temp_file, 'rb'))}  requests.post(url,files=files) 

but not work, corresponding curl command work.

you must not showing exact code because curl command provide , code provide works. see output:

~ curl -f foo=bar -f file=@setup.py https://httpbin.org/post {   "headers": {     "accept": "*/*",     "content-length": "2370",     "connection": "close",     "host": "httpbin.org",     "user-agent": "curl/7.29.0",     "content-type": "multipart/form-data; boundary=----------------------------959364026805"   },   "files": {     "file": "#!/usr/bin/env python\n\nimport sys\nimport os\nimport re\n\nkwargs = {}\nrequires = []\npackages = [\n    \"github3\",\n    \"github3.gists\",\n    \"github3.repos\",\n    \"github3.issues\",\n]\n\ntry:\n    setuptools import setup\n    kwargs['test_suite'] = 'run_tests.collect_tests'\n    kwargs['tests_require'] = ['mock', 'expecter', 'coverage==3.5.2']\n    packages.append('tests')\nexcept importerror:\n    distutils.core import setup  # noqa\n\nif sys.argv[-1] in (\"submit\", \"publish\"):\n    os.system(\"python setup.py sdist upload\")\n    sys.exit()\n\nrequires.extend([\"requests >= 1.2.3\", \"uritemplate.py >= 0.2.0\"])\n\n__version__ = ''\nwith open('github3/__init__.py', 'r') fd:\n    reg = re.compile(r'__version__ = [\\'\"]([^\\'\"]*)[\\'\"]')\n    line in fd:\n        m = reg.match(line)\n        if m:\n            __version__ = m.group(1)\n            break\n\nif not __version__:\n    raise runtimeerror('cannot find version information')\n\nsetup(\n    name=\"github3.py\",\n    version=__version__,\n    description=(\"python wrapper github api\"\n                 \"(http://developer.github.com/v3)\"),\n    long_description=\"\\n\\n\".join([open(\"readme.rst\").read(),\n                                  open(\"history.rst\").read()]),\n    license=open('license').read(),\n    author=\"ian cordasco\",\n    author_email=\"graffatcolmingov@gmail.com\",\n    url=\"https://github3py.readthedocs.org\",\n    packages=packages,\n    package_data={'': ['license', 'authors.rst']},\n    include_package_data=true,\n    install_requires=requires,\n    classifiers=[\n        'development status :: 5 - production/stable',\n        'license :: osi approved',\n        'intended audience :: developers',\n        'programming language :: python',\n        'programming language :: python :: 2',\n        'programming language :: python :: 2.6',\n        'programming language :: python :: 2.7',\n        'programming language :: python :: 3',\n        'programming language :: python :: 3.2',\n        'programming language :: python :: 3.3',\n        'programming language :: python :: implementation :: cpython',\n    ],\n    **kwargs\n)\n"   },   "origin": "...",   "form": {     "foo": "bar"   },   "url": "http://httpbin.org/post",   "data": "",   "args": {},   "json": null 

and interactive python shell:

>>> import pprint pp >>> import requests >>> pp.pprint(requests.post('https://httpbin.org/post', files={'file': ('filename', fd)}).json()) {u'args': {},  u'data': u'',  u'files': {u'file': u"#!/usr/bin/env python\n\nimport os\nimport sys\n\nimport requests\n\ntry:\n    setuptools import setup\nexcept importerror:\n    distutils.core import setup\n\nif sys.argv[-1] == 'publish':\n    os.system('python setup.py sdist upload')\n    sys.exit()\n\npackages = [\n    'requests',\n    'requests.packages',\n    'requests.packages.charade',\n    'requests.packages.urllib3',\n    'requests.packages.urllib3.packages',\n    'requests.packages.urllib3.contrib',\n    'requests.packages.urllib3.packages.ssl_match_hostname'\n]\n\nrequires = []\n\nsetup(\n    name='requests',\n    version=requests.__version__,\n    description='python http humans.',\n    long_description=open('readme.rst').read() + '\\n\\n' +\n                     open('history.rst').read(),\n    author='kenneth reitz',\n    author_email='me@kennethreitz.com',\n    url='http://python-requests.org',\n    packages=packages,\n    package_data={'': ['license', 'notice'], 'requests': ['*.pem']},\n    package_dir={'requests': 'requests'},\n    include_package_data=true,\n    install_requires=requires,\n    license=open('license').read(),\n    zip_safe=false,\n    classifiers=(\n        'development status :: 5 - production/stable',\n        'intended audience :: developers',\n        'natural language :: english',\n        'license :: osi approved :: apache software license',\n        'programming language :: python',\n        'programming language :: python :: 2.6',\n        'programming language :: python :: 2.7',\n        'programming language :: python :: 3',\n        'programming language :: python :: 3.3',\n\n    ),\n)\n"},  u'form': {},  u'headers': {u'accept': u'*/*',               u'accept-encoding': u'gzip, deflate, compress',               u'connection': u'close',               u'content-length': u'1748',               u'content-type': u'multipart/form-data; boundary=d76a42fcaca84b3288ea4fa177bdad60',               u'host': u'httpbin.org',               u'user-agent': u'python-requests/1.2.3 cpython/2.7.3 linux/3.2.29'},  u'json': none,  u'origin': u'...',  u'url': u'http://httpbin.org/post'} 

with exception of unicode literals peeking through, code should work perfectly.

please edit post more details including version of requests you're using , far more details data you're trying post. can not when post correct.


Comments

Popular posts from this blog

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

html - How to style widget with post count different than without post count -

url rewriting - How to redirect a http POST with urlrewritefilter -