微信小程序的http请求问题

1,项目已发布上线,为线上版本。
2,项目请求均在局域网内通讯,不存在内网穿透问题,也不考虑内网穿透技术(以防数据泄露)
3,功能使用的是http协议,且有icp备案后的域名,没有云服务等一系列付费服务。
4,用的wx.request请求一切功能在测试版本都是没有问题的,所有不考虑测试版本的问题。目前只考虑线上版本的问题。

问题是?

问题是线上部署,小程序访问不了后端?

  • 以下回答由chatgpt基于相关博客总结生成:

    回到问题,如果是使用Socket长连接的话,在发送HTTP请求时,也是直接通过发送数据到服务器的方式进行通讯,只是在发送完请求后,不关闭连接,可以继续通过该连接发送后续请求。所以,如果出现了线上版本的http请求问题,可以考虑以下几个方面:

    1. 查看服务器是否正常,是否能够接收到请求并正确地响应。
    2. 检查请求方式是否正确,是否使用了正确的HTTP协议头。
    3. 检查请求参数是否正确,是否符合服务器的要求。
    4. 如果是使用Socket长连接,可以考虑尝试关闭连接再重新建立,或者检查连接是否断开,是否需要重新建立连接。可以参考以下代码:
    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请求问题时,可以使用类似的方式来检查和调试,如果存在连接问题,可以尝试关闭连接然后重新建立,或者检查连接是否已经断开,是否需要重新建立连接。

有在微信公众平台把域名加入白名单吗