发送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