python-接口调用传json参数的两种方法

Python012

python-接口调用传json参数的两种方法,第1张

payload={

"Jessie":"Hello",

"python":12334,

"requests":True,

}

url=" http://httpbin.org/post "

r1=requests.post(url,json=payload)

r2 = requests.post(url,json.dumps(payload))

print(r1.text)

r2=requests.post(url,data=json.dumps(payload))

print(r2.text)

参考这个客户端程序,我觉得是你的服务端有问题

import socket

HOST = '127.0.0.1' # 服务器的主机名或者 IP 地址

PORT = 65432# 服务器使用的端口

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:

s.connect((HOST, PORT))

s.sendall(b'Hello, world')

data = s.recv(1024)

print('Received', repr(data))

服务端写法

import socket

HOST = '127.0.0.1' # 标准的回环地址 (localhost)

PORT = 65432# 监听的端口 (非系统级的端口: 大于 1023)

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:

s.bind((HOST, PORT))

s.listen()

conn, addr = s.accept()

with conn:

print('Connected by', addr)

while True:

data = conn.recv(1024)

if not data:

break

conn.sendall(data)

head = {

'Accept': '*/*',

'Host': '',

'Connection': 'keep-alive',

'Content-Length': '245',

'Origin': '',

'User-Agent': 'Mozilla/5.0 (MacintoshIntel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome'

'/51.0.2704.103 Safari/537.36',

'Content-Type': 'application/json',

'Accept': 'text/html,application/xhtml+xml,application/xmlq=0.9,image/webp,*/*q=0.8',

'Referer': '',

'Accept-Language': 'zh-CN,zhq=0.8',

'Accept-Encoding': 'gzip, deflate'

}

cookie = cookiejar.CookieJar()

handler = urllib.request.HTTPCookieProcessor(cookie)

opener = urllib.request.build_opener(handler)

opener.addheader(head)

# 其他为了获取 cookie 的各种请求。

.....

.....

.....

parsed_request_data = json.dumps(self.hotel_search_request_data).encode()

response = openner.open(self.hotel_search_url, parsed_request_data)