Django的request.POST没有获取到内容

  发送POST请求到服务器,但是在后端一直没有获取到数据

  客户端程序:

import http.client
import json
import time

#通过httplib,可以向某个url发送请求
def RequestUrl(host,port,source,params,timeout):
        headers = {"Content-type": "application/json"}
        try:
                conn = http.client.HTTPConnection(host,port,timeout)   #建立连接
                conn.request('POST',source,params,headers)   #使用指定的method方法和url链接向服务器发送请求,params是要发送的部分,headers是HTTP头部
                response = conn.getresponse()  #在请求发送后调用得到服务器返回的内容,返回的是一个HTTPResponse实例
                original = response.read()   ##读取和返回response的body部分
                print(original)
        except Exception as e:
                raise e
        return original

server_info = {
"raid_adaptor_count":1,
"nic_count":6,
"cpumodel":"Intel",
"cpu_core_count":"40",
"asset_id":"1",
"cpu_count":"2",
}

if      __name__ == "__main__":

        while True:
                RequestData = urllib.parse.urlencode({'data':server_info})
                result = RequestUrl('127.0.0.1','8000','/receive_server_info/',RequestData,30)
                print('result: %s' % result)
                time.sleep(3)

  在服务器端

def receive_server_info(request):
        print(request.POST)
        return HttpResponse('successful')

  执行程序一直都不能获取到数据

  [29/Dec/2017 09:01:34] "POST /receive_server_info/ HTTP/1.1" 200 10
  <QueryDict: {}>

  最后通过在网上查阅是django没有对'Content-Type':'application/json'做处理,所以修改header为

  headers = {"Content-type": "application/x-www-form-urlencoded"}就可以了

  参考:http://blog.csdn.net/liuxingen/article/details/54176205

原文地址:https://www.cnblogs.com/homle/p/8476205.html