from typing import Dict,  Optional


class HttpResponse(object):
    def __init__(self, status_code=200, body=None, headers=None):
        # type: (int, Optional[bytes], Optional[Dict[str, str]]) -> None
        self.status_code = status_code
        self.body = body
        self.headers = headers

    def __repr__(self):
        return 'HttpResponse(status_code = {}, body = {}, header = "{}")'.format(self.status_code,
                                                                                 self.body,
                                                                                 self.headers)

    def __str__(self):
        return self.__repr__()

    def __eq__(self, o):
        if not isinstance(o, HttpResponse):
            return False

        return self.status_code == o.status_code and self.headers == o.headers and self.body == o.body

    def __ne__(self, o):
        return not self.__eq__(o)
