gpt4 book ai didi

python - 通过 HTTP 发送和接收简单的 JSON 消息

转载 作者:可可西里 更新时间:2023-11-01 17:17:05 31 4
gpt4 key购买 nike

我想通过 HTTP 发送和接收一些简单的数据。

这是服务器端:

import time
import BaseHTTPServer
import json

HOST_NAME = 'localhost'
PORT_NUMBER = 9000

class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_POST(self):
print "You've got mail!"
content_len = int(self.headers.getheader('content-length', 0))
body = self.rfile.read(content_len)
data = json.loads(body)
print data

if __name__ == '__main__':
server_class = BaseHTTPServer.HTTPServer
httpd = server_class((HOST_NAME, PORT_NUMBER), MyHandler)
print time.asctime(), "Server Starts - %s:%s" % (HOST_NAME,
PORT_NUMBER)
try:
httpd.serve_forever()
except KeyboardInterrupt:
pass
httpd.server_close()
print time.asctime(), "Server Stops - %s:%s" % (HOST_NAME, PORT_NUMBER)

这是客户端:

import requests
import json

url = 'http://localhost:9000'
data = {
'date': 'the best day',
'time': 'the best time',
'name': 'Janet Smith'
}

r = requests.post(url, json=data)
print r.status_code
print r.json()

我收到这个错误:

Traceback (most recent call last): File "testSend.py", line 17, in

r = requests.post(url, json=data)

File "/Library/Python/2.7/site-packages/requests/api.py", line 116, in post return request('post', url, data=data, json=json, **kwargs)

File "/Library/Python/2.7/site-packages/requests/api.py", line 60, in request

return session.request(method=method, url=url, **kwargs)

File "/Library/Python/2.7/site-packages/requests/sessions.py", line 524, in request

resp = self.send(prep, **send_kwargs)

File "/Library/Python/2.7/site-packages/requests/sessions.py", line 637, in send

r = adapter.send(request, **kwargs)

File "/Library/Python/2.7/site-packages/requests/adapters.py", line 498, in send

raise ConnectionError(err, request=request)

requests.exceptions.ConnectionError: ('Connection aborted.',

BadStatusLine("''",))

编辑:我最初也遇到了服务器端错误,但看起来问题可能出在一行粘贴的代码上。我重新缩进了所有内容,现在可以使用了。

最佳答案

原来有几个问题:

  1. 服务器端错误是由于复制粘贴代码造成的。我需要重新缩进所有内容。

  2. 通过在服务器端将 self.send_response(200) 添加到我的 DO_POST 函数来修复客户端错误

  3. 执行 #2 会引入一个新的“无法解码 json”错误。这是因为来自服务器的响应不包含 json 消息。所以我只需要注释掉 print r.json() 行或在服务器端发送一条 json 消息。

关于python - 通过 HTTP 发送和接收简单的 JSON 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56083388/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com