Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QtWebEngine
  4. setHttpHeader not wok in QWebEngineUrlRequestInfo
QtWS25 Last Chance

setHttpHeader not wok in QWebEngineUrlRequestInfo

Scheduled Pinned Locked Moved Unsolved QtWebEngine
12 Posts 3 Posters 609 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    KHOSRO
    wrote on last edited by KHOSRO
    #1

    i want change HttpHeader with setHttpHeader but not work
    i used this code
    i want to change cache-control :max_age :10000000
    but setHttpHeader not work
    and max-age is always 3600(1hour)

    import os
    from PySide2.QtCore import QEventLoop, Qt, QUrl,QByteArray
    from PySide2.QtWebChannel import QWebChannel
    from PySide2.QtWebEngineWidgets import QWebEngineView, QWebEnginePage, QWebEngineProfile
    from PySide2.QtWebEngineCore import QWebEngineUrlRequestInterceptor, QWebEngineUrlRequestInfo
    
    class CacheControlInterceptor(QWebEngineUrlRequestInterceptor):
        def interceptRequest(self, info: QWebEngineUrlRequestInfo):
            request_url = info.requestUrl().toString()
            print(f"Request URL: {request_url}")
    
            if info.resourceType() == QWebEngineUrlRequestInfo.ResourceTypeImage:
                # Set custom cache control
                info.setHttpHeader(QByteArray(b'Cache-Control'), QByteArray(b'public,max-age=10000000'))
    

    total code is :

    class MapWidget(QWebEngineView):
        """
        The MapWidget class is a QWebEngineView that houses the leaflet map.
        Since it is a QWidget, it can be added to any QLayout.
        """
    
        @property
        def page(self):
            return self._page
    
        @property
        def channel(self):
            return self._channel
    
        def __init__(self, use_file_absolute_path: bool = True, alternative_base_path: str = "", cache_path: str = ""):
            super().__init__()
            if use_file_absolute_path or len(alternative_base_path) == 0:
                self.base_path = os.path.dirname(os.path.abspath(__file__))
            else:
                self.base_path = alternative_base_path
    
            # Create a QWebEngineProfile and set the cache path
            self._profile = QWebEngineProfile.defaultProfile()
            if cache_path:
                self._profile.setCachePath(cache_path)
    
            self._page = QWebEnginePage(self._profile, self)
            self.setPage(self._page)
            self._channel = QWebChannel()
            self._page.setWebChannel(self._channel)
    
            # Set the interceptor
            self._interceptor = CacheControlInterceptor()
            self._profile.setRequestInterceptor(self._interceptor)
    
            self._loadPage()
            self.setContextMenuPolicy(Qt.NoContextMenu)
        def _get_page_path(self):
            return os.path.join(self.base_path, 'web', 'map.html')
        def _loadPage(self):
            html_path = self._get_page_path()
            # QEventLoop is used to make the page loading behave synchronously
            init_loop = QEventLoop()
            self._page.loadFinished.connect(init_loop.quit)
            self._page.load(QUrl().fromLocalFile(html_path))
            init_loop.exec_()
    
    jsulmJ 1 Reply Last reply
    0
    • K KHOSRO

      i want change HttpHeader with setHttpHeader but not work
      i used this code
      i want to change cache-control :max_age :10000000
      but setHttpHeader not work
      and max-age is always 3600(1hour)

      import os
      from PySide2.QtCore import QEventLoop, Qt, QUrl,QByteArray
      from PySide2.QtWebChannel import QWebChannel
      from PySide2.QtWebEngineWidgets import QWebEngineView, QWebEnginePage, QWebEngineProfile
      from PySide2.QtWebEngineCore import QWebEngineUrlRequestInterceptor, QWebEngineUrlRequestInfo
      
      class CacheControlInterceptor(QWebEngineUrlRequestInterceptor):
          def interceptRequest(self, info: QWebEngineUrlRequestInfo):
              request_url = info.requestUrl().toString()
              print(f"Request URL: {request_url}")
      
              if info.resourceType() == QWebEngineUrlRequestInfo.ResourceTypeImage:
                  # Set custom cache control
                  info.setHttpHeader(QByteArray(b'Cache-Control'), QByteArray(b'public,max-age=10000000'))
      

      total code is :

      class MapWidget(QWebEngineView):
          """
          The MapWidget class is a QWebEngineView that houses the leaflet map.
          Since it is a QWidget, it can be added to any QLayout.
          """
      
          @property
          def page(self):
              return self._page
      
          @property
          def channel(self):
              return self._channel
      
          def __init__(self, use_file_absolute_path: bool = True, alternative_base_path: str = "", cache_path: str = ""):
              super().__init__()
              if use_file_absolute_path or len(alternative_base_path) == 0:
                  self.base_path = os.path.dirname(os.path.abspath(__file__))
              else:
                  self.base_path = alternative_base_path
      
              # Create a QWebEngineProfile and set the cache path
              self._profile = QWebEngineProfile.defaultProfile()
              if cache_path:
                  self._profile.setCachePath(cache_path)
      
              self._page = QWebEnginePage(self._profile, self)
              self.setPage(self._page)
              self._channel = QWebChannel()
              self._page.setWebChannel(self._channel)
      
              # Set the interceptor
              self._interceptor = CacheControlInterceptor()
              self._profile.setRequestInterceptor(self._interceptor)
      
              self._loadPage()
              self.setContextMenuPolicy(Qt.NoContextMenu)
          def _get_page_path(self):
              return os.path.join(self.base_path, 'web', 'map.html')
          def _loadPage(self):
              html_path = self._get_page_path()
              # QEventLoop is used to make the page loading behave synchronously
              init_loop = QEventLoop()
              self._page.loadFinished.connect(init_loop.quit)
              self._page.load(QUrl().fromLocalFile(html_path))
              init_loop.exec_()
      
      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #2

      @KHOSRO said in setHttpHeader not wok in QWebEngineUrlRequestInfo:

      but setHttpHeader not work

      So, is info.setHttpHeader called?

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      K 1 Reply Last reply
      0
      • jsulmJ jsulm

        @KHOSRO said in setHttpHeader not wok in QWebEngineUrlRequestInfo:

        but setHttpHeader not work

        So, is info.setHttpHeader called?

        K Offline
        K Offline
        KHOSRO
        wrote on last edited by KHOSRO
        #3

        @jsulm no, i checked it now but not work
        ```

        def setHttpHeader(self, name, PySide6_QtCore_QByteArray=None, bytes=None, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
                """ setHttpHeader(self, name: Union[PySide6.QtCore.QByteArray, bytes], value: Union[PySide6.QtCore.QByteArray, bytes]) -> None """
                print('Hiiiiiiiiiiiiiii')
                pass
        
        it can not print 'Hiiiiiii'
        1 Reply Last reply
        0
        • jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #4

          Then that means that

          if info.resourceType() == QWebEngineUrlRequestInfo.ResourceTypeImage
          

          is never true.

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          K 1 Reply Last reply
          0
          • jsulmJ jsulm

            Then that means that

            if info.resourceType() == QWebEngineUrlRequestInfo.ResourceTypeImage
            

            is never true.

            K Offline
            K Offline
            KHOSRO
            wrote on last edited by KHOSRO
            #5

            @jsulm yesss
            this condition satisfy and it is

            print(info.resourceType())
                    if info.resourceType() == QWebEngineUrlRequestInfo.ResourceTypeImage:
                        # Set custom cache control
                        info.setHttpHeader(b'Cache-Control', b'max-age=31536000')
            

            outpu is :
            PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeImage

            and the QWebEngineUrlRequestInfo class is :

            class QWebEngineUrlRequestInfo(__Shiboken.Object):
                # no doc
                def block(self, shouldBlock): # real signature unknown; restored from __doc__
                    """ block(self, shouldBlock: bool) -> None """
                    pass
            
                def changed(self): # real signature unknown; restored from __doc__
                    """ changed(self) -> bool """
                    return False
            
                def firstPartyUrl(self): # real signature unknown; restored from __doc__
                    """ firstPartyUrl(self) -> PySide2.QtCore.QUrl """
                    pass
            
                def initiator(self): # real signature unknown; restored from __doc__
                    """ initiator(self) -> PySide2.QtCore.QUrl """
                    pass
            
                def navigationType(self): # real signature unknown; restored from __doc__
                    """ navigationType(self) -> PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType """
                    pass
            
                def redirect(self, url): # real signature unknown; restored from __doc__
                    """ redirect(self, url: PySide2.QtCore.QUrl) -> None """
                    pass
            
                def requestMethod(self): # real signature unknown; restored from __doc__
                    """ requestMethod(self) -> PySide2.QtCore.QByteArray """
                    pass
            
                def requestUrl(self): # real signature unknown; restored from __doc__
                    """ requestUrl(self) -> PySide2.QtCore.QUrl """
                    pass
            
                def resourceType(self): # real signature unknown; restored from __doc__
                    """ resourceType(self) -> PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType """
                    pass
            
                def setHttpHeader(self, name, value): # real signature unknown; restored from __doc__
                    """ setHttpHeader(self, name: PySide2.QtCore.QByteArray, value: PySide2.QtCore.QByteArray) -> None """
                    pass
            
                def __init__(self, *args, **kwargs): # real signature unknown
                    pass
                @staticmethod # known case of __new__
                def __new__(*args, **kwargs): # real signature unknown
                    """ Create and return a new object.  See help(type) for accurate signature. """
                    pass
                NavigationType = None # (!) real value is "<class 'PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType'>"
                NavigationTypeBackForward = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType.NavigationTypeBackForward
                NavigationTypeFormSubmitted = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType.NavigationTypeFormSubmitted
                NavigationTypeLink = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType.NavigationTypeLink
                NavigationTypeOther = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType.NavigationTypeOther
                NavigationTypeRedirect = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType.NavigationTypeRedirect
                NavigationTypeReload = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType.NavigationTypeReload
                NavigationTypeTyped = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType.NavigationTypeTyped
                ResourceType = None # (!) real value is "<class 'PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType'>"
                ResourceTypeCspReport = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeCspReport
                ResourceTypeFavicon = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeFavicon
                ResourceTypeFontResource = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeFontResource
                ResourceTypeImage = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeImage
                ResourceTypeLast = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeLast
                ResourceTypeMainFrame = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeMainFrame
                ResourceTypeMedia = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeMedia
                ResourceTypeNavigationPreloadMainFrame = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeNavigationPreloadMainFrame
                ResourceTypeNavigationPreloadSubFrame = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeNavigationPreloadSubFrame
                ResourceTypeObject = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeObject
                ResourceTypePing = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypePing
                ResourceTypePluginResource = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypePluginResource
                ResourceTypePrefetch = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypePrefetch
                ResourceTypeScript = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeScript
                ResourceTypeServiceWorker = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeServiceWorker
                ResourceTypeSharedWorker = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeSharedWorker
                ResourceTypeStylesheet = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeStylesheet
                ResourceTypeSubFrame = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeSubFrame
                ResourceTypeSubResource = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeSubResource
                ResourceTypeUnknown = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeUnknown
                ResourceTypeWorker = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeWorker
                ResourceTypeXhr = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeXhr
            
            jsulmJ 1 Reply Last reply
            0
            • K KHOSRO

              @jsulm yesss
              this condition satisfy and it is

              print(info.resourceType())
                      if info.resourceType() == QWebEngineUrlRequestInfo.ResourceTypeImage:
                          # Set custom cache control
                          info.setHttpHeader(b'Cache-Control', b'max-age=31536000')
              

              outpu is :
              PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeImage

              and the QWebEngineUrlRequestInfo class is :

              class QWebEngineUrlRequestInfo(__Shiboken.Object):
                  # no doc
                  def block(self, shouldBlock): # real signature unknown; restored from __doc__
                      """ block(self, shouldBlock: bool) -> None """
                      pass
              
                  def changed(self): # real signature unknown; restored from __doc__
                      """ changed(self) -> bool """
                      return False
              
                  def firstPartyUrl(self): # real signature unknown; restored from __doc__
                      """ firstPartyUrl(self) -> PySide2.QtCore.QUrl """
                      pass
              
                  def initiator(self): # real signature unknown; restored from __doc__
                      """ initiator(self) -> PySide2.QtCore.QUrl """
                      pass
              
                  def navigationType(self): # real signature unknown; restored from __doc__
                      """ navigationType(self) -> PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType """
                      pass
              
                  def redirect(self, url): # real signature unknown; restored from __doc__
                      """ redirect(self, url: PySide2.QtCore.QUrl) -> None """
                      pass
              
                  def requestMethod(self): # real signature unknown; restored from __doc__
                      """ requestMethod(self) -> PySide2.QtCore.QByteArray """
                      pass
              
                  def requestUrl(self): # real signature unknown; restored from __doc__
                      """ requestUrl(self) -> PySide2.QtCore.QUrl """
                      pass
              
                  def resourceType(self): # real signature unknown; restored from __doc__
                      """ resourceType(self) -> PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType """
                      pass
              
                  def setHttpHeader(self, name, value): # real signature unknown; restored from __doc__
                      """ setHttpHeader(self, name: PySide2.QtCore.QByteArray, value: PySide2.QtCore.QByteArray) -> None """
                      pass
              
                  def __init__(self, *args, **kwargs): # real signature unknown
                      pass
                  @staticmethod # known case of __new__
                  def __new__(*args, **kwargs): # real signature unknown
                      """ Create and return a new object.  See help(type) for accurate signature. """
                      pass
                  NavigationType = None # (!) real value is "<class 'PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType'>"
                  NavigationTypeBackForward = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType.NavigationTypeBackForward
                  NavigationTypeFormSubmitted = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType.NavigationTypeFormSubmitted
                  NavigationTypeLink = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType.NavigationTypeLink
                  NavigationTypeOther = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType.NavigationTypeOther
                  NavigationTypeRedirect = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType.NavigationTypeRedirect
                  NavigationTypeReload = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType.NavigationTypeReload
                  NavigationTypeTyped = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.NavigationType.NavigationTypeTyped
                  ResourceType = None # (!) real value is "<class 'PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType'>"
                  ResourceTypeCspReport = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeCspReport
                  ResourceTypeFavicon = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeFavicon
                  ResourceTypeFontResource = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeFontResource
                  ResourceTypeImage = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeImage
                  ResourceTypeLast = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeLast
                  ResourceTypeMainFrame = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeMainFrame
                  ResourceTypeMedia = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeMedia
                  ResourceTypeNavigationPreloadMainFrame = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeNavigationPreloadMainFrame
                  ResourceTypeNavigationPreloadSubFrame = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeNavigationPreloadSubFrame
                  ResourceTypeObject = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeObject
                  ResourceTypePing = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypePing
                  ResourceTypePluginResource = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypePluginResource
                  ResourceTypePrefetch = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypePrefetch
                  ResourceTypeScript = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeScript
                  ResourceTypeServiceWorker = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeServiceWorker
                  ResourceTypeSharedWorker = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeSharedWorker
                  ResourceTypeStylesheet = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeStylesheet
                  ResourceTypeSubFrame = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeSubFrame
                  ResourceTypeSubResource = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeSubResource
                  ResourceTypeUnknown = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeUnknown
                  ResourceTypeWorker = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeWorker
                  ResourceTypeXhr = PySide2.QtWebEngineCore.QWebEngineUrlRequestInfo.ResourceType.ResourceTypeXhr
              
              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #6

              @KHOSRO Sorry, I don't really understand what you mean.
              Is setHttpHeader() called or not?

              And please format your code properly.

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              K 2 Replies Last reply
              0
              • jsulmJ jsulm

                @KHOSRO Sorry, I don't really understand what you mean.
                Is setHttpHeader() called or not?

                And please format your code properly.

                K Offline
                K Offline
                KHOSRO
                wrote on last edited by KHOSRO
                #7

                @jsulm i correct and edite above code
                please check another
                yes it call method

                1 Reply Last reply
                0
                • jsulmJ jsulm

                  @KHOSRO Sorry, I don't really understand what you mean.
                  Is setHttpHeader() called or not?

                  And please format your code properly.

                  K Offline
                  K Offline
                  KHOSRO
                  wrote on last edited by
                  #8

                  @jsulm do u have any idea Sir

                  jsulmJ 1 Reply Last reply
                  0
                  • K KHOSRO

                    @jsulm do u have any idea Sir

                    jsulmJ Offline
                    jsulmJ Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on last edited by
                    #9

                    @KHOSRO In the code you posted you do not do anything inside setHttpHeader.

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    JonBJ K 2 Replies Last reply
                    0
                    • jsulmJ jsulm

                      @KHOSRO In the code you posted you do not do anything inside setHttpHeader.

                      JonBJ Offline
                      JonBJ Offline
                      JonB
                      wrote on last edited by JonB
                      #10

                      @jsulm
                      I don't know the answer to this, but what OP shows for QWebEngineUrlRequestInfo and setHttpHeader() etc. is not code he has written, it is Python/PySide's way of showing how QWebEngineUrlRequestInfo() is defined from Python point of view. You can assume it is actually calling the C++ QWebEngineUrlRequestInfo methods.

                      @KHOSRO
                      I don't understand what you are doing when you show

                      def setHttpHeader(self, name, PySide6_QtCore_QByteArray=None, bytes=None, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
                              """ setHttpHeader(self, name: Union[PySide6.QtCore.QByteArray, bytes], value: Union[PySide6.QtCore.QByteArray, bytes]) -> None """
                              print('Hiiiiiiiiiiiiiii')
                              pass
                      

                      Where have you made the edit to add your print()? You are not supposed to be redefining (def) setHttpHeader() you are supposed to be calling it with whatever you want. Like you show with

                      info.setHttpHeader(QByteArray(b'Cache-Control'), QByteArray(b'public,max-age=10000000'))
                      

                      QWebEngineUrlRequestInfo::setHttpHeader() is not virtual so you cannot override it (e.g. to add in your print()), you can only call it.

                      1 Reply Last reply
                      1
                      • jsulmJ jsulm

                        @KHOSRO In the code you posted you do not do anything inside setHttpHeader.

                        K Offline
                        K Offline
                        KHOSRO
                        wrote on last edited by KHOSRO
                        #11

                        @JonB thank u for ur response
                        do u have idead
                        why QWebEngineUrlRequestInfo and setHttpHeader() not work when called
                        and can not change the header
                        in detail:
                        i have a client which is qwebengine
                        i send request url to server when fetch it i want change cache- control for custom purpose
                        after changing url , i want to show downloaded url

                        1 Reply Last reply
                        0
                        • JonBJ Offline
                          JonBJ Offline
                          JonB
                          wrote on last edited by
                          #12

                          I don't know anything about it, but my guess is that it is changing the header, but you are not seeing the effect you expect/desire. What evidence do you have that it is not setting your header? After calling setHttpHeader() if you are Qt 6.5+ try calling QHash<QByteArray, QByteArray> QWebEngineUrlRequestInfo::httpHeaders() const to at least make sure your Cache-Control header is there. Or try sniffing/checking what is received at server side.

                          1 Reply Last reply
                          0

                          • Login

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • Users
                          • Groups
                          • Search
                          • Get Qt Extensions
                          • Unsolved