@@ -99,10 +99,10 @@ cdef class PyRequest:
9999 # pyData is really of type "str", but Cython will throw
100100 # an error if we use that type: "Cannot convert 'bytes'
101101 # object to str implicitly. This is not portable to Py3."
102- cdef object pyData
102+ cdef bytes pyData
103103 cdef size_t bytesCount
104104 cdef void * voidData
105- cdef str pyFile
105+ cdef bytes pyFile
106106 while iterator != elementVector.end():
107107 postDataElement = deref(iterator)
108108 if postDataElement.get().GetType() == cef_types.PDE_TYPE_EMPTY:
@@ -112,18 +112,18 @@ cdef class PyRequest:
112112 bytesCount = postDataElement.get().GetBytesCount()
113113 voidData = < void * > malloc(bytesCount)
114114 postDataElement.get().GetBytes(bytesCount, voidData)
115- pyData = VoidPtrToString (voidData, bytesCount)
115+ pyData = VoidPtrToBytes (voidData, bytesCount)
116116 free(voidData)
117- if pyData.startswith(' --' ) or retMultipart:
117+ if pyData.startswith(b ' --' ) or retMultipart:
118118 # Content-Type: multipart/form-data
119119 retMultipart.append(pyData)
120120 else :
121121 # Content-Type: application/x-www-form-urlencoded
122122 retUrlEncoded.update(urlparse.parse_qsl(qs = pyData,
123123 keep_blank_values = True ))
124124 elif postDataElement.get().GetType() == cef_types.PDE_TYPE_FILE:
125- pyFile = CefToPyString (postDataElement.get().GetFile())
126- retMultipart.append(" @" + pyFile)
125+ pyFile = CefToPyBytes (postDataElement.get().GetFile())
126+ retMultipart.append(b " @" + pyFile)
127127 else :
128128 raise Exception (" Invalid type of CefPostDataElement" )
129129 preinc(iterator)
@@ -135,15 +135,15 @@ cdef class PyRequest:
135135 cpdef py_void SetPostData(self , object pyPostData):
136136 cdef CefRefPtr[CefPostData] postData = CefPostData_Create()
137137 cdef CefRefPtr[CefPostDataElement] postDataElement
138- cdef py_string pyElement
138+ cdef bytes pyElement
139139 cdef CefString sfile
140140 if type (pyPostData) == list :
141141 for pyElement in pyPostData:
142- if pyElement.startswith(' --' ):
142+ if pyElement.startswith(b ' --' ):
143143 postDataElement = CefPostDataElement_Create()
144144 postDataElement.get().SetToBytes(len (pyElement),
145145 < char * > pyElement)
146- elif pyElement.startswith(' @' ):
146+ elif pyElement.startswith(b ' @' ):
147147 postDataElement = CefPostDataElement_Create()
148148 PyToCefString(pyElement[1 :], sfile)
149149 postDataElement.get().SetToFile(sfile)
@@ -156,8 +156,7 @@ cdef class PyRequest:
156156 postData.get().AddElement(postDataElement)
157157 self .GetCefRequest().get().SetPostData(postData)
158158 elif type (pyPostData) == dict :
159- pyElement = urllib.urlencode(pyPostData)
160- pyElement = str (pyElement)
159+ pyElement = urllib_urlencode(pyPostData).encode()
161160 postDataElement = CefPostDataElement_Create()
162161 postDataElement.get().SetToBytes(len (pyElement), < char * > pyElement)
163162 postData.get().AddElement(postDataElement)
0 commit comments