1,项目已发布上线,为线上版本。
2,项目请求均在局域网内通讯,不存在内网穿透问题,也不考虑内网穿透技术(以防数据泄露)
3,功能使用的是http协议,且有icp备案后的域名,没有云服务等一系列付费服务。
4,用的wx.request请求一切功能在测试版本都是没有问题的,所有不考虑测试版本的问题。目前只考虑线上版本的问题。
问题是?
问题是线上部署,小程序访问不了后端?
回到问题,如果是使用Socket长连接的话,在发送HTTP请求时,也是直接通过发送数据到服务器的方式进行通讯,只是在发送完请求后,不关闭连接,可以继续通过该连接发送后续请求。所以,如果出现了线上版本的http请求问题,可以考虑以下几个方面:
import socket
HOST = '127.0.0.1' # 服务器IP
PORT = 8888 # 服务器端口
BUFFER_SIZE = 1024 # 缓冲区大小
def main():
# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect((HOST, PORT))
# 发送请求数据
request = 'GET / HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n' % HOST
client_socket.send(request.encode())
# 接收响应数据
response = b''
while True:
data = client_socket.recv(BUFFER_SIZE)
if len(data) > 0:
response += data
else:
break
# 输出响应数据
print(response.decode())
# 关闭socket连接
client_socket.close()
if __name__ == '__main__':
main()
在上面的代码中,我们使用了Socket连接服务器,并发送了一个HTTP GET请求,请求的内容为GET / HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n
,其中的Connection: close
表示在请求完成后关闭连接。在请求发送完成后,我们通过recv
方法来接收响应数据,通过decode
方法将响应数据转换为字符串进行输出,最后关闭连接。
当出现线上版本的http请求问题时,可以使用类似的方式来检查和调试,如果存在连接问题,可以尝试关闭连接然后重新建立,或者检查连接是否已经断开,是否需要重新建立连接。
有在微信公众平台把域名加入白名单吗