python post json,python使用JSON数据发出POST请求

I'm trying to mimic a curl request I'm doing using python the call is. Note that

HTTPS Request

Ignoring SSL ceritification verification

My server is django

The curl command I used is

curl -k --dump-header - -H "Content-Type: application/json" -X POST --data '{"environment_name": "foo"}' https://localhost/api/v1/environment/

and the response from the server is successful

HTTP/1.1 201 CREATED

Date: Tue, 17 Jun 2014 00:59:59 GMT

Server: Server

Vary: Accept-Language,Cookie,User-Agent

Content-Language: en-us

Location: https://localhost/api/v1/environment/None/

Status: 201 CREATED

Content-Length: 0

Cneonction: close

Content-Type: text/html; charset=utf-8

However when I try to do a post request in python with 'requests' my script is

import json

data = {'enviornment_name' : 'foo'}

headers = {'Content-type' : 'application/json'}

response = requests.post("https://localhost/api/v1/environment", headers=headers, data=data, verify=False)

When running the script I get back a huge stack trace but the part in red is

E DecodeError: ('Received response with content-encoding: gzip, but failed to decode it.', error('Error -3 while decompressing: incorrect data check',))

I'm not sure why I can't my script to work via python

解决方案

@Fabricator I need the verify=False however I noticed the one thing in my code that was an issue for the server I was using I needed the trailing '/' at the end of the URI. In addition I also needed the json.dumps(data) not json.dump(data) in case others are looking. Thanks for the help

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值