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
Forum Updated to NodeBB v4.3 + New Features

setHttpHeader not wok in QWebEngineUrlRequestInfo

Scheduled Pinned Locked Moved Unsolved QtWebEngine
12 Posts 3 Posters 627 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.
  • 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